——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
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



