——DWIN Developer Forum-ից
Այս թողարկումում մենք առաջ ենք քաշում DWIN Developer Forum-ի մրցանակակիր բաց կոդով գործը՝ բազմաֆունկցիոնալ քաշիչ: Ինժեները ընդունում է 4 դյույմանոց COF խելացի էկրան, և T5L OS միջուկի և HX711 մոդուլի և 5 կգ ճնշման սենսորների հավաքածուի տվյալների փոխազդեցության միջոցով օգտվողները կարող են հեշտությամբ իրականացնել հաշվելու ցուցադրման գործառույթները, ինչպիսիք են քաշը, միավորի գինը, ընդհանուր գինը, տարա և այլն: ., ինչպես նաև հաշվելու, քաշի փոփոխության կորերի հետագծման և կշռման ճշգրտության ուղղման և այլնի գործառույթները, որպեսզի հեշտ լինի անցնել կիրառման տարբեր սցենարների միջև՝ հարմարավետ և արդյունավետ կշռման փորձը վայելելու համար:
1. UI մշակում
![f26af533d43728cd210e0f7af5e7acc](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f077223d2b27894.png)
2.C51 Դիզայն
Գնագոյացման ֆունկցիան իրականացնելու համար կշռողի համար հղման կոդի մի մասը հետևյալն է.
// Գների էջ====================
#define VALUATION_UNIT_PRICE_ADDR 0x1010
#define VALUATION_GRAM_ADDR 0x1000
#define VALUATION_TOTAL_PRICES_ADDR 0x1020
uint32_t valuation_decorticate = 0; // Գնագոյացում Tare Weight
uint32_t valuation_unit_price = 0; //Միավոր գինը
// Միավորի գնի թարմացում
void page_valuation_unit_price_refresh()
{
uint8_t test_display[10] = {0};
եթե (գնահատման_միավոր_գին
{
test_display[0] = valuation_unit_price / 100 % 10 + 0x30;
test_display[1] = '.';
test_display[2] = valuation_unit_price / 10 % 10 + 0x30;
test_display[3] = valuation_unit_price / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
else if (գնահատման_միավոր_գին
{
test_display[0] = valuation_unit_price / 1000 % 10 + 0x30;
test_display[1] = valuation_unit_price / 100 % 10 + 0x30;
test_display[2] = '.';
test_display[3] = valuation_unit_price / 10 % 10 + 0x30;
test_display[4] = valuation_unit_price / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
else if (գնահատման_միավոր_գին
{
test_display[0] = valuation_unit_price / 10000 % 10 + 0x30;
test_display[1] = valuation_unit_price / 1000 % 10 + 0x30;
test_display[2] = valuation_unit_price / 100 % 10 + 0x30;
test_display[3] = '.';
test_display[4] = valuation_unit_price / 10 % 10 + 0x30;
test_display[5] = valuation_unit_price / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
else if (գնահատման_միավոր_գին
{
test_display[0] = valuation_unit_price / 100000 % 10 + 0x30;
test_display[1] = valuation_unit_price / 10000 % 10 + 0x30;
test_display[2] = valuation_unit_price / 1000 % 10 + 0x30;
test_display[3] = valuation_unit_price / 100 % 10 + 0x30;
test_display[4] = '.';
test_display[5] = valuation_unit_price / 10 % 10 + 0x30;
test_display[6] = valuation_unit_price / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
}
// Քաշի թարմացում
void page_valuation_weight_refresh()
{
uint8_t test_display[10] = {0x30};
uint32_t gram_display = 0;
if (gram_value >= valuation_decorticate)
{
gram_display = gram_value - valuation_decorticate;
if (gram_display
{
test_display[0] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);
}
else if (gram_display
{
test_display[0] = gram_display / 10 % 10 + 0x30;
test_display[1] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);
}
else if (gram_display
{
test_display[0] = gram_display / 100 % 10 + 0x30;
test_display[1] = gram_display / 10 % 10 + 0x30;
test_display[2] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);
}
else if (gram_display
{
test_display[0] = gram_display / 1000 % 10 + 0x30;
test_display[1] = gram_display / 100 % 10 + 0x30;
test_display[2] = gram_display / 10 % 10 + 0x30;
test_display[3] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);
}
else if (gram_display
{
test_display[0] = gram_display / 10000 % 10 + 0x30;
test_display[1] = gram_display / 1000 % 10 + 0x30;
test_display[2] = gram_display / 100 % 10 + 0x30;
test_display[3] = gram_display / 10 % 10 + 0x30;
test_display[4] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);
}
}
ուրիշ
{
dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);
}
}
// Ընդհանուր գնի թարմացում
void page_valuation_price_refresh()
{
uint32_t գին_արժեք = 0;
uint8_t test_display[10] = {0x30, '.', 0x30, 0x30};
if (gram_value >= valuation_decorticate)
{
գին_արժեք = (gram_value - valuation_decorticate) * գնահատման_միավոր_գին * 2 / 1000;
եթե (գին_արժեքը
{
test_display[0] = price_value / 100 % 10 + 0x30;
test_display[1] = '.';
test_display[2] = price_value / 10 % 10 + 0x30;
test_display[3] = price_value / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
else if(price_value
{
test_display[0] = price_value / 1000 % 10 + 0x30;
test_display[1] = price_value / 100 % 10 + 0x30;
test_display[2] = '.';
test_display[3] = price_value / 10 % 10 + 0x30;
test_display[4] = price_value / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
else if(price_value
{
test_display[0] = price_value / 10000 % 10 + 0x30;
test_display[1] = գին_արժեք / 1000 % 10 + 0x30;
test_display[2] = price_value / 100 % 10 + 0x30;
test_display[3] = '.';
test_display[4] = գին_արժեք / 10 % 10 + 0x30;
test_display[5] = price_value / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
else if(price_value
{
test_display[0] = գին_արժեք / 100000 % 10 + 0x30;
test_display[1] = price_value / 10000 % 10 + 0x30;
test_display[2] = գին_արժեք / 1000 % 10 + 0x30;
test_display[3] = price_value / 100 % 10 + 0x30;
test_display[4] = '.';
test_display[5] = price_value / 10 % 10 + 0x30;
test_display[6] = գին_արժեք / 1 % 10 + 0x30;
dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
}
ուրիշ
{
dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
}
void page_valuation_decorticate()
{
valuation_decorticate = gram_value;
page_valuation_weight_refresh();
}
void page_valuation_1()
{
եթե (գնահատման_միավոր_գին
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին * 10 + 1;
page_valuation_unit_price_refresh();
}
}
void page_valuation_2()
{
եթե (գնահատման_միավոր_գին
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին * 10 + 2;
page_valuation_unit_price_refresh();
}
}
void page_valuation_3()
{
եթե (գնահատման_միավոր_գին
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին * 10 + 3;
page_valuation_unit_price_refresh();
}
}
void page_valuation_4()
{
եթե (գնահատման_միավոր_գին
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին * 10 + 4;
page_valuation_unit_price_refresh();
}
}
void page_valuation_5()
{
եթե (գնահատման_միավոր_գին
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին * 10 + 5;
page_valuation_unit_price_refresh();
}
}
void page_valuation_6()
{
եթե (գնահատման_միավոր_գին
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին * 10 + 6;
page_valuation_unit_price_refresh();
}
}
void page_valuation_7()
{
եթե (գնահատման_միավոր_գին
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին * 10 + 7;
page_valuation_unit_price_refresh();
}
}
void page_valuation_8()
{
եթե (գնահատման_միավոր_գին
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին * 10 + 8;
page_valuation_unit_price_refresh();
}
}
void page_valuation_9()
{
եթե (գնահատման_միավոր_գին
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին * 10 + 9;
page_valuation_unit_price_refresh();
}
}
void page_valuation_0()
{
եթե (գնահատման_միավոր_գին
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին * 10 + 0;
page_valuation_unit_price_refresh();
}
}
void page_valuation_back()
{
գնահատման_միավոր_գին = գնահատման_միավոր_գին / 10;
page_valuation_unit_price_refresh();
}
void page_valuation_clear()
{
գնահատման_միավոր_գին = 0;
page_valuation_unit_price_refresh();
}
Հրապարակման ժամանակը՝ ապրիլի 28-2024