——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](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f077223d2b27894.png)
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