[Iturburu irekia] Pisatzeko gailu multifuntzionala

——DWIN garatzaileen forotik

Ale honetan, DWIN Developer Forum-en saritutako kode irekiko kasua bultzatzen dugu - Multi-funttion Weigher. Ingeniariak 4 hazbeteko COF pantaila adimenduna erabiltzen du, eta T5L OS nukleoaren eta HX711 moduluaren eta 5 kg-ko presio-sentsore multzoaren arteko datu-elkarrekintzaren bidez, erabiltzaileek erraz lor ditzakete zenbaketa-pantailaren funtzioak, hala nola pisua, unitate-prezioa, prezio osoa, tara, etab., baita zenbaketa-funtzioak, pisu-aldaketaren kurben jarraipena eta pisagailuaren zehaztasuna zuzentzeko funtzioak ere, etab., aplikazio-eszenatoki desberdinen artean aldatzea erraz izan dadin pisatzeko esperientzia eroso eta eraginkorraz gozatzeko.

1. UI garapena

f26af533d43728cd210e0f7af5e7acc

2.C51 Diseinua

Prezioen funtzioa ezartzeko pisadoreak duen erreferentzia-kodearen zati bat honako hau da:

// Prezioen Orria=====================

#define BALORAZIO_UNITATE_PREZIOA_GEHIZKETA 0x1010

#define VALUATION_GRAM_ADDR 0x1000

#define BALORAZIOA_GUZTIK_PREZIOAK_GEHITZA 0x1020

uint32_t valuation_decorticate = 0; // Prezioa Tara Pisua

uint32_t valuation_unit_price = 0; //Unitateko Prezioa

// Unitateko Prezioa Freskatu

void orrialdearen_balorazio_unitate_prezioaren_freskatze()

{

uint8_t proba_erakustaldia[10] = {0};

baldin eta(balorazio_unitate_prezioa

{

proba_erakustaldia[0] = balorazio_unitate_prezioa / % 100 10 + 0x30;

proba_erakustaldia[1] = '.';

proba_erakustaldia[2] = balorazio_unitate_prezioa / % 10 10 + 0x30;

proba_erakustaldia[3] = balorazio_unitate_prezioa / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIOA_UNITATEKO_PREZIOA_GEHITU, test_display, 4);

}

bestela baldin eta(balorazio_unitate_prezioa

{

proba_erakustaldia[0] = balorazio_unitate_prezioa / 1000 % 10 + 0x30;

proba_erakustaldia[1] = balorazio_unitate_prezioa / % 100 10 + 0x30;

proba_erakustaldia[2] = '.';

proba_erakustaldia[3] = balorazio_unitate_prezioa / % 10 10 + 0x30;

proba_erakustaldia[4] = balorazio_unitate_prezioa / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIOA_UNITATEKO_PREZIOA_GEHITU, test_display, 4);

}

bestela baldin eta(balorazio_unitate_prezioa

{

proba_erakustaldia[0] = balorazio_unitate_prezioa / 10000 % 10 + 0x30;

proba_erakustaldia[1] = balorazio_unitate_prezioa / 1000 % 10 + 0x30;

proba_erakustaldia[2] = balorazio_unitate_prezioa / % 100 10 + 0x30;

proba_erakustaldia[3] = '.';

proba_erakustaldia[4] = balorazio_unitate_prezioa / % 10 10 + 0x30;

proba_erakustaldia[5] = balorazio_unitate_prezioa / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIOA_UNITATEKO_PREZIOA_GEHITU, test_display, 4);

}

bestela baldin eta(balorazio_unitate_prezioa

{

proba_erakustaldia[0] = balorazio_unitate_prezioa / 100000 % 10 + 0x30;

proba_erakustaldia[1] = balorazio_unitate_prezioa / 10000 % 10 + 0x30;

proba_erakustaldia[2] = balorazio_unitate_prezioa / 1000 % 10 + 0x30;

proba_erakustaldia[3] = balorazio_unitate_prezioa / % 100 10 + 0x30;

proba_erakustaldia[4] = '.';

proba_erakustaldia[5] = balorazio_unitate_prezioa / % 10 10 + 0x30;

proba_erakustaldia[6] = balorazio_unitate_prezioa / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIOA_UNITATEKO_PREZIOA_GEHITU, test_display, 4);

}

}

 

// Pisua freskatzea

void orrialdearen_balorazio_pisua_freskatu()

{

uint8_t proba_erakustaldia[10] = {0x30};

uint32_t gram_display = 0;

if(gram_balioa >= balorazioa_deskortikatu)

{

gram_display = gramo_balioa - balorazioa_decorticate;

baldin eta(gram_display

{

proba_erakustaldia[0] = gramo_erakustaldia / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIO_GRAM_ADDR, test_display, 3);

}

bestela baldin eta(gram_display

{

proba_erakustaldia[0] = gramo_erakustaldia / 10 % 10 + 0x30;

proba_erakustaldia[1] = gramo_erakustaldia / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIO_GRAM_ADDR, test_display, 3);

}

bestela baldin eta(gram_display

{

proba_erakustaldia[0] = gramo_erakustaldia / % 100 10 + 0x30;

proba_erakustaldia[1] = gramo_erakustaldia / 10 % 10 + 0x30;

proba_erakustaldia[2] = gramo_erakustaldia / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIO_GRAM_ADDR, test_display, 3);

}

bestela baldin eta(gram_display

{

proba_erakustaldia[0] = gramo_erakustaldia / 1000 % 10 + 0x30;

proba_erakustaldia[1] = gramo_erakustaldia / % 100 10 + 0x30;

proba_erakustaldia[2] = gramo_erakustaldia / 10 % 10 + 0x30;

proba_erakustaldia[3] = gramo_erakustaldia / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIO_GRAM_ADDR, test_display, 3);

}

bestela baldin eta(gram_display

{

proba_erakustaldia[0] = gramo_erakustaldia / 10000 % 10 + 0x30;

proba_erakustaldia[1] = gramo_erakustaldia / 1000 % 10 + 0x30;

proba_erakustaldia[2] = gramo_erakustaldia / % 100 10 + 0x30;

proba_erakustaldia[3] = gramo_erakustaldia / 10 % 10 + 0x30;

proba_erakustaldia[4] = gramo_erakustaldia / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIO_GRAM_ADDR, test_display, 3);

}

}

bestela

{

dgus_show_text_value_set(BALORAZIO_GRAM_ADDR, test_display, 3);

}

}

 

// Prezio Osoaren Berritzea

void orrialdearen_balorazio_prezioaren_freskatze()

{

uint32_t prezioa_balioa = 0;

uint8_t proba_erakustaldia[10] = {0x30, '.', 0x30, 0x30};

if(gram_balioa >= balorazioa_deskortikatu)

{

prezio_balioa = (gramo_balioa - balorazio_deskortikatua) * balorazio_unitate_prezioa * 2 / 1000;

baldin eta(prezioa_balioa

{

proba_erakustaldia[0] = prezio_balioa / % 100 10 + 0x30;

proba_erakustaldia[1] = '.';

proba_erakustaldia[2] = prezio_balioa / % 10 10 + 0x30;

proba_erakustaldia[3] = prezio_balioa / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIOA_GUZTIK_PREZIOAK_GEHITU, test_display, 4);

}

bestela baldin eta(prezioa_balioa

{

proba_erakustaldia[0] = prezio_balioa / 1000 % 10 + 0x30;

proba_erakustaldia[1] = prezio_balioa / % 100 10 + 0x30;

proba_erakustaldia[2] = '.';

proba_erakustaldia[3] = prezio_balioa / % 10 10 + 0x30;

proba_erakustaldia[4] = prezio_balioa / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIOA_GUZTIK_PREZIOAK_GEHITU, test_display, 4);

}

bestela baldin eta(prezioa_balioa

{

proba_erakustaldia[0] = prezio_balioa / 10000 % 10 + 0x30;

proba_erakustaldia[1] = prezio_balioa / 1000 % 10 + 0x30;

proba_erakustaldia[2] = prezio_balioa / % 100 10 + 0x30;

proba_erakustaldia[3] = '.';

proba_erakustaldia[4] = prezio_balioa / % 10 10 + 0x30;

proba_erakustaldia[5] = prezio_balioa / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIOA_GUZTIK_PREZIOAK_GEHITU, test_display, 4);

}

bestela baldin eta(prezioa_balioa

{

proba_erakustaldia[0] = prezio_balioa / 100000 % 10 + 0x30;

proba_erakustaldia[1] = prezio_balioa / 10000 % 10 + 0x30;

proba_erakustaldia[2] = prezio_balioa / 1000 % 10 + 0x30;

proba_erakustaldia[3] = prezio_balioa / % 100 10 + 0x30;

proba_erakustaldia[4] = '.';

proba_erakustaldia[5] = prezio_balioa / % 10 10 + 0x30;

proba_erakustaldia[6] = prezio_balioa / 1 % 10 + 0x30;

dgus_show_text_value_set(BALORAZIOA_GUZTIK_PREZIOAK_GEHITU, test_display, 4);

}

}

bestela

{

dgus_show_text_value_set(BALORAZIOA_GUZTIK_PREZIOAK_GEHITU, test_display, 4);

}

}

void orrialdearen_balorazioa_deskortikatu()

{

balorazioa_decorticate = gramo_balioa;

orrialdearen_balorazio_pisua_freskatu();

}

void orrialdearen_balorazioa_1()

{

baldin eta(balorazio_unitate_prezioa

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa * 10 + 1;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

}

void orrialdearen_balorazioa_2()

{

baldin eta(balorazio_unitate_prezioa

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa * 10 + 2;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

}

void orrialdearen_balorazioa_3()

{

baldin eta(balorazio_unitate_prezioa

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa * 10 + 3;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

}

void orrialdearen_balorazioa_4()

{

baldin eta(balorazio_unitate_prezioa

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa * 10 + 4;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

}

void orrialdearen_balorazioa_5()

{

baldin eta(balorazio_unitate_prezioa

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa * 10 + 5;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

}

void orrialdearen_balorazioa_6()

{

baldin eta(balorazio_unitate_prezioa

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa * 10 + 6;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

}

void orrialdearen_balorazioa_7()

{

baldin eta(balorazio_unitate_prezioa

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa * 10 + 7;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

}

void orrialdearen_balorazioa_8()

{

baldin eta(balorazio_unitate_prezioa

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa * 10 + 8;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

}

void orrialdearen_balorazioa_9()

{

baldin eta(balorazio_unitate_prezioa

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa * 10 + 9;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

}

void orrialdearen_balorazioa_0()

{

baldin eta(balorazio_unitate_prezioa

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa * 10 + 0;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

}

void orrialde_balorazio_atzera()

{

balorazio_unitate_prezioa = balorazio_unitate_prezioa / 10;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}

void orrialde_balorazio_garbitu()

{

balorazio_unitate_prezioa = 0;

orrialdearen_balorazioa_unitate_prezioa_freskatu();

}


Argitaratze data: 2024ko apirilaren 28a