[Nyílt forráskód] Többfunkciós mérleg

——A DWIN fejlesztői fórumról

Ebben a számban a DWIN Developer Forum – Multi-function Weigher díjnyertes nyílt forráskódú tokját mutatjuk be. A mérnök 4 hüvelykes COF intelligens képernyőt alkalmaz, és a T5L OS mag és a HX711 modul, valamint az 5 kg-os nyomásérzékelő készlet közötti adatkölcsönhatás révén a felhasználók könnyen megvalósíthatják a számláló kijelző funkcióit, mint például a súly, az egységár, a teljes ár, a tára stb. ., valamint a számlálás, a súlyváltozási görbék nyomon követése, a mérleg pontosságának korrekciója stb. funkciói, így könnyen válthat a különböző alkalmazási forgatókönyvek között, és élvezheti a kényelmes és hatékony mérési élményt.

1. UI fejlesztés

f26af533d43728cd210e0f7af5e7acc

2.C51 Tervezés

A mérleg referenciakódjának egy része az árképzési funkció megvalósításához a következő:

// Árképzési oldal===================

#define VALUATION_UNIT_PRICE_ADDR 0x1010

#define VALUATION_GRAM_ADDR 0x1000

#define VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t valuation_decorticate = 0; // Árképzés Tára tömeg

uint32_t értékelési_egységár = 0; //Egységár

// Egységár frissítése

void page_valuation_unit_price_refresh()

{

uint8_t teszt_megjelenítés[10] = {0};

if(értékelési_egységár

{

teszt_megjelenítés[0] = értékelési_egységár / 100 % 10 + 0x30;

test_display[1] = '.';

teszt_megjelenítés[2] = értékelési_egységár / 10 % 10 + 0x30;

teszt_megjelenítés[3] = értékelési_egységár / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKEGYSÉG_PRICE_ADDR, teszt_megjelenítés, 4);

}

else if(értékelési_egységár

{

teszt_megjelenítés[0] = értékelési_egységár / 1000 % 10 + 0x30;

teszt_megjelenítés[1] = értékelési_egységár / 100 % 10 + 0x30;

test_display[2] = '.';

teszt_megjelenítés[3] = értékelési_egységár / 10 % 10 + 0x30;

teszt_megjelenítés[4] = értékelési_egységár / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKEGYSÉG_PRICE_ADDR, teszt_megjelenítés, 4);

}

else if(értékelési_egységár

{

teszt_megjelenítés[0] = értékelési_egységár / 10000 % 10 + 0x30;

teszt_megjelenítés[1] = értékelési_egységár / 1000 % 10 + 0x30;

teszt_megjelenítés[2] = értékelési_egységár / 100 % 10 + 0x30;

test_display[3] = '.';

teszt_megjelenítés[4] = értékelési_egységár / 10 % 10 + 0x30;

teszt_megjelenítés[5] = értékelési_egységár / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKEGYSÉG_PRICE_ADDR, teszt_megjelenítés, 4);

}

else if(értékelési_egységár

{

teszt_megjelenítés[0] = értékelési_egységár / 100000 % 10 + 0x30;

teszt_megjelenítés[1] = értékelési_egységár / 10000 % 10 + 0x30;

teszt_megjelenítés[2] = értékelési_egységár / 1000 % 10 + 0x30;

teszt_megjelenítés[3] = értékelési_egységár / 100 % 10 + 0x30;

test_display[4] = '.';

teszt_megjelenítés[5] = értékelési_egységár / 10 % 10 + 0x30;

teszt_megjelenítés[6] = értékelési_egységár / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKEGYSÉG_PRICE_ADDR, teszt_megjelenítés, 4);

}

}

 

// Súlyfrissítés

void page_valuation_weight_refresh()

{

uint8_t teszt_megjelenítés[10] = {0x30};

uint32_t gram_display = 0;

if(gram_érték >= értékelés_decorticate)

{

gramm_megjelenítés = gramm_érték - értékelés_dekortikálás;

if(gram_megjelenítés

{

teszt_megjelenítés[0] = gramm_megjelenítés / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKELÉS_GRAM_ADDR, teszt_megjelenítés, 3);

}

else if(gram_megjelenítés

{

teszt_megjelenítés[0] = gramm_megjelenítés / 10 % 10 + 0x30;

teszt_megjelenítés[1] = gramm_megjelenítés / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKELÉS_GRAM_ADDR, teszt_megjelenítés, 3);

}

else if(gram_megjelenítés

{

teszt_megjelenítés[0] = gramm_megjelenítés / 100 % 10 + 0x30;

teszt_megjelenítés[1] = gramm_megjelenítés / 10 % 10 + 0x30;

teszt_megjelenítés[2] = gramm_megjelenítés / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKELÉS_GRAM_ADDR, teszt_megjelenítés, 3);

}

else if(gram_megjelenítés

{

teszt_megjelenítés[0] = gramm_megjelenítés / 1000 % 10 + 0x30;

teszt_megjelenítés[1] = gramm_megjelenítés / 100 % 10 + 0x30;

teszt_megjelenítés[2] = gramm_megjelenítés / 10 % 10 + 0x30;

teszt_megjelenítés[3] = gramm_megjelenítés / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKELÉS_GRAM_ADDR, teszt_megjelenítés, 3);

}

else if(gram_megjelenítés

{

teszt_megjelenítés[0] = gramm_megjelenítés / 10000 % 10 + 0x30;

teszt_megjelenítés[1] = gramm_megjelenítés / 1000 % 10 + 0x30;

teszt_megjelenítés[2] = gramm_megjelenítés / 100 % 10 + 0x30;

teszt_megjelenítés[3] = gramm_megjelenítés / 10 % 10 + 0x30;

teszt_megjelenítés[4] = gramm_megjelenítés / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKELÉS_GRAM_ADDR, teszt_megjelenítés, 3);

}

}

más

{

dgus_show_text_value_set(ÉRTÉKELÉS_GRAM_ADDR, teszt_megjelenítés, 3);

}

}

 

// Teljes ár frissítése

void page_valuation_price_refresh()

{

uint32_t ár_érték = 0;

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

if(gram_érték >= értékelés_decorticate)

{

ár_érték = (gram_érték - értékelési_díszítés) * értékelési_egységár * 2 / 1000;

if(ár_érték

{

teszt_megjelenítés[0] = ár_érték / 100 % 10 + 0x30;

test_display[1] = '.';

teszt_megjelenítés[2] = ár_érték / 10 % 10 + 0x30;

teszt_megjelenítés[3] = ár_érték / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKELÉS_TOTAL_PRICES_ADDR, teszt_megjelenítés, 4);

}

else if(ár_érték

{

teszt_megjelenítés[0] = ár_érték / 1000 % 10 + 0x30;

teszt_megjelenítés[1] = ár_érték / 100 % 10 + 0x30;

test_display[2] = '.';

teszt_megjelenítés[3] = ár_érték / 10 % 10 + 0x30;

teszt_megjelenítés[4] = ár_érték / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKELÉS_TOTAL_PRICES_ADDR, teszt_megjelenítés, 4);

}

else if(price_value

{

teszt_megjelenítés[0] = ár_érték / 10000 % 10 + 0x30;

teszt_megjelenítés[1] = ár_érték / 1000 % 10 + 0x30;

teszt_megjelenítés[2] = ár_érték / 100 % 10 + 0x30;

test_display[3] = '.';

teszt_megjelenítés[4] = ár_érték / 10 % 10 + 0x30;

teszt_megjelenítés[5] = ár_érték / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKELÉS_TOTAL_PRICES_ADDR, teszt_megjelenítés, 4);

}

else if(price_value

{

teszt_megjelenítés[0] = ár_érték / 100000 % 10 + 0x30;

teszt_megjelenítés[1] = ár_érték / 10000 % 10 + 0x30;

teszt_megjelenítés[2] = ár_érték / 1000 % 10 + 0x30;

teszt_megjelenítés[3] = ár_érték / 100 % 10 + 0x30;

test_display[4] = '.';

teszt_megjelenítés[5] = ár_érték / 10 % 10 + 0x30;

teszt_megjelenítés[6] = ár_érték / 1 % 10 + 0x30;

dgus_show_text_value_set(ÉRTÉKELÉS_TOTAL_PRICES_ADDR, teszt_megjelenítés, 4);

}

}

más

{

dgus_show_text_value_set(ÉRTÉKELÉS_TOTAL_PRICES_ADDR, teszt_megjelenítés, 4);

}

}

void page_valuation_decorticate()

{

értékelés_decorticate = gramm_érték;

page_valuation_weight_refresh();

}

érvénytelen oldal_értékelés_1()

{

if(értékelési_egységár

{

értékelési_egységár = értékelési_egységár * 10 + 1;

page_valuation_unit_price_refresh();

}

}

érvénytelen oldal_értékelés_2()

{

if(értékelési_egységár

{

értékelési_egységár = értékelési_egységár * 10 + 2;

page_valuation_unit_price_refresh();

}

}

érvénytelen oldal_értékelés_3()

{

if(értékelési_egységár

{

értékelési_egységár = értékelési_egységár * 10 + 3;

page_valuation_unit_price_refresh();

}

}

érvénytelen oldal_értékelés_4()

{

if(értékelési_egységár

{

értékelési_egységár = értékelési_egységár * 10 + 4;

page_valuation_unit_price_refresh();

}

}

érvénytelen oldal_értékelés_5()

{

if(értékelési_egységár

{

értékelési_egységár = értékelési_egységár * 10 + 5;

page_valuation_unit_price_refresh();

}

}

érvénytelen oldal_értékelés_6()

{

if(értékelési_egységár

{

értékelési_egységár = értékelési_egységár * 10 + 6;

page_valuation_unit_price_refresh();

}

}

érvénytelen oldal_értékelés_7()

{

if(értékelési_egységár

{

értékelési_egységár = értékelési_egységár * 10 + 7;

page_valuation_unit_price_refresh();

}

}

érvénytelen oldal_értékelés_8()

{

if(értékelési_egységár

{

értékelési_egységár = értékelési_egységár * 10 + 8;

page_valuation_unit_price_refresh();

}

}

érvénytelen oldal_értékelés_9()

{

if(értékelési_egységár

{

értékelési_egységár = értékelési_egységár * 10 + 9;

page_valuation_unit_price_refresh();

}

}

érvénytelen oldal_értékelés_0()

{

if(értékelési_egységár

{

értékelési_egységár = értékelési_egységár * 10 + 0;

page_valuation_unit_price_refresh();

}

}

void page_valuation_back()

{

értékelési_egységár = értékelési_egységár / 10;

page_valuation_unit_price_refresh();

}

void page_valuation_clear()

{

értékelési_egységár = 0;

page_valuation_unit_price_refresh();

}


Feladás időpontja: 2024.04.28