[Atvērtā koda] Daudzfunkcionāla svēršanas ierīce

——No DWIN izstrādātāju foruma

Šajā izdevumā mēs piedāvājam DWIN izstrādātāju foruma godalgoto atvērtā pirmkoda gadījumu — daudzfunkcionāls svērējs. Inženieris izmanto 4 collu COF viedo ekrānu, un, izmantojot datu mijiedarbību starp T5L OS kodolu un HX711 moduli un 5 kg spiediena sensoru komplektu, lietotāji var viegli realizēt skaitīšanas displeja funkcijas, piemēram, svaru, vienības cenu, kopējo cenu, taru utt. ., kā arī skaitīšanas, svara izmaiņu līkņu izsekošanas un svērēju precizitātes korekcijas u.c. funkcijas, lai būtu viegli pārslēgties starp dažādiem pielietojuma scenārijiem, lai izbaudītu ērtu un efektīvu svēršanas pieredzi.

1. UI izstrāde

f26af533d43728cd210e0f7af5e7acc

2.C51 Dizains

Daļa no atsauces koda svariem, lai ieviestu cenu noteikšanas funkciju, ir šāds:

// Cenu lapa====================

#define VALUATION_UNIT_PRICE_ADDR 0x1010

#define VALUATION_GRAM_ADDR 0x1000

#define VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t valuation_decorticate = 0; // Taras svars

uint32_t vērtēšanas_vienības_cena = 0; //Vienības cena

// Vienības cenas atsvaidzināšana

Void page_valuation_unit_price_refresh()

{

uint8_t testa_displejs[10] = {0};

if(novērtēšanas_vienības_cena

{

testa_displejs[0] = vērtēšanas_vienības_cena / 100 % 10 + 0x30;

test_display[1] = '.';

testa_displejs[2] = vērtēšanas_vienības_cena / 10 % 10 + 0x30;

testa_displejs[3] = vērtēšanas_vienības_cena / 1 % 10 + 0x30;

dgus_show_text_value_set(VĒRTĒJUMA_UNIT_PRICE_ADDR, testa_displejs, 4);

}

else if(novērtēšanas_vienības_cena

{

testa_displejs[0] = vērtēšanas_vienības_cena / 1000 % 10 + 0x30;

testa_displejs[1] = vērtēšanas_vienības_cena / 100 % 10 + 0x30;

test_display[2] = '.';

testa_displejs[3] = vērtēšanas_vienības_cena / 10 % 10 + 0x30;

testa_displejs[4] = vērtēšanas_vienības_cena / 1 % 10 + 0x30;

dgus_show_text_value_set(VĒRTĒJUMA_UNIT_PRICE_ADDR, testa_displejs, 4);

}

else if(novērtēšanas_vienības_cena

{

testa_displejs[0] = vērtēšanas_vienības_cena / 10000 % 10 + 0x30;

testa_displejs[1] = vērtēšanas_vienības_cena / 1000 % 10 + 0x30;

testa_displejs[2] = vērtēšanas_vienības_cena / 100 % 10 + 0x30;

test_display[3] = '.';

testa_displejs[4] = vērtēšanas_vienības_cena / 10 % 10 + 0x30;

testa_displejs[5] = vērtēšanas_vienības_cena / 1 % 10 + 0x30;

dgus_show_text_value_set(VĒRTĒJUMA_UNIT_PRICE_ADDR, testa_displejs, 4);

}

cits, ja(novērtēšanas_vienības_cena

{

testa_displejs[0] = vērtēšanas_vienības_cena / 100000 % 10 + 0x30;

testa_displejs[1] = vērtēšanas_vienības_cena / 10000 % 10 + 0x30;

testa_displejs[2] = vērtēšanas_vienības_cena / 1000 % 10 + 0x30;

testa_displejs[3] = vērtēšanas_vienības_cena / 100 % 10 + 0x30;

test_display[4] = '.';

testa_displejs[5] = vērtēšanas_vienības_cena / 10 % 10 + 0x30;

testa_displejs[6] = vērtēšanas_vienības_cena / 1 % 10 + 0x30;

dgus_show_text_value_set(VĒRTĒJUMA_UNIT_PRICE_ADDR, testa_displejs, 4);

}

}

 

// Svara atsvaidzināšana

Void page_valuation_weight_refresh()

{

uint8_t testa_displejs[10] = 0x30};

uint32_t gram_display = 0;

if(grama_vērtība >= vērtēšanas_dekortika)

{

grama_displejs = grama_vērtība — vērtēšana_dekortika;

if(gram_displejs

{

testa_displejs[0] = grama_displejs / 1 % 10 + 0x30;

dgus_show_text_value_set(VĒRTĒŠANAS_GRAM_ADDR, testa_displejs, 3);

}

else if(gram_displejs

{

testa_displejs[0] = grama_displejs / 10 % 10 + 0x30;

testa_displejs[1] = grama_displejs / 1 % 10 + 0x30;

dgus_show_text_value_set(VĒRTĒŠANAS_GRAM_ADDR, testa_displejs, 3);

}

else if(gram_displejs

{

testa_displejs[0] = grama_displejs / 100 % 10 + 0x30;

testa_displejs[1] = grama_displejs / 10 % 10 + 0x30;

testa_displejs[2] = grama_displejs / 1 % 10 + 0x30;

dgus_show_text_value_set(VĒRTĒŠANAS_GRAM_ADDR, testa_displejs, 3);

}

else if(gram_displejs

{

testa_displejs[0] = grama_displejs / 1000 % 10 + 0x30;

testa_displejs[1] = grama_displejs / 100 % 10 + 0x30;

testa_displejs[2] = grama_displejs / 10 % 10 + 0x30;

testa_displejs[3] = grama_displejs / 1 % 10 + 0x30;

dgus_show_text_value_set(VĒRTĒŠANAS_GRAM_ADDR, testa_displejs, 3);

}

else if(gram_displejs

{

testa_displejs[0] = grama_displejs / 10000 % 10 + 0x30;

testa_displejs[1] = grama_displejs / 1000 % 10 + 0x30;

testa_displejs[2] = grama_displejs / 100 % 10 + 0x30;

testa_displejs[3] = grama_displejs / 10 % 10 + 0x30;

testa_displejs[4] = grama_displejs / 1 % 10 + 0x30;

dgus_show_text_value_set(VĒRTĒŠANAS_GRAM_ADDR, testa_displejs, 3);

}

}

cits

{

dgus_show_text_value_set(VĒRTĒŠANAS_GRAM_ADDR, testa_displejs, 3);

}

}

 

// Kopējās cenas atsvaidzināšana

Void page_valuation_price_refresh()

{

uint32_t cenas_vērtība = 0;

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

if(grama_vērtība >= vērtēšanas_dekortika)

{

cena_vērtība = (grama_vērtība — novērtējuma_dekortika) * vērtēšanas_vienības_cena * 2 / 1000;

if(cenas_vērtība

{

testa_displejs[0] = cenas_vērtība / 100 % 10 + 0x30;

test_display[1] = '.';

testa_displejs[2] = cenas_vērtība / 10 % 10 + 0x30;

testa_displejs[3] = cenas_vērtība / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, testa_displejs, 4);

}

else if(cenas_vērtība

{

testa_displejs[0] = cenas_vērtība / 1000 % 10 + 0x30;

testa_displejs[1] = cenas_vērtība / 100 % 10 + 0x30;

test_display[2] = '.';

testa_displejs[3] = cenas_vērtība / 10 % 10 + 0x30;

testa_displejs[4] = cenas_vērtība / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, testa_displejs, 4);

}

else if(cenas_vērtība

{

testa_displejs[0] = cenas_vērtība / 10000 % 10 + 0x30;

testa_displejs[1] = cenas_vērtība / 1000 % 10 + 0x30;

testa_displejs[2] = cenas_vērtība / 100 % 10 + 0x30;

test_display[3] = '.';

testa_displejs[4] = cenas_vērtība / 10 % 10 + 0x30;

testa_displejs[5] = cenas_vērtība / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, testa_displejs, 4);

}

else if(cenas_vērtība

{

testa_displejs[0] = cenas_vērtība / 100000 % 10 + 0x30;

testa_displejs[1] = cenas_vērtība / 10000 % 10 + 0x30;

testa_displejs[2] = cenas_vērtība / 1000 % 10 + 0x30;

testa_displejs[3] = cenas_vērtība / 100 % 10 + 0x30;

test_display[4] = '.';

testa_displejs[5] = cenas_vērtība / 10 % 10 + 0x30;

testa_displejs[6] = cenas_vērtība / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, testa_displejs, 4);

}

}

cits

{

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, testa_displejs, 4);

}

}

Void page_valuation_decorticate()

{

vērtēšana_dekortika = grama_vērtība;

page_valuation_weight_refresh();

}

nederīgs lapas_vērtējums_1()

{

if(novērtēšanas_vienības_cena

{

vērtēšanas_vienības_cena = novērtējuma_vienības_cena * 10 + 1;

page_valuation_unit_price_refresh();

}

}

spēkā neesošs lapas_vērtējums_2()

{

if(novērtēšanas_vienības_cena

{

vērtēšanas_vienības_cena = novērtējuma_vienības_cena * 10 + 2;

page_valuation_unit_price_refresh();

}

}

nederīgs lapas_vērtējums_3()

{

if(novērtēšanas_vienības_cena

{

vērtēšanas_vienības_cena = novērtējuma_vienības_cena * 10 + 3;

page_valuation_unit_price_refresh();

}

}

nederīgs lapas_vērtējums_4()

{

if(novērtēšanas_vienības_cena

{

vērtēšanas_vienības_cena = novērtējuma_vienības_cena * 10 + 4;

page_valuation_unit_price_refresh();

}

}

nederīgs lapas_vērtējums_5()

{

if(novērtēšanas_vienības_cena

{

vērtēšanas_vienības_cena = novērtējuma_vienības_cena * 10 + 5;

page_valuation_unit_price_refresh();

}

}

nederīgs lapas_vērtējums_6()

{

if(novērtēšanas_vienības_cena

{

vērtēšanas_vienības_cena = novērtējuma_vienības_cena * 10 + 6;

page_valuation_unit_price_refresh();

}

}

nederīgs lapas_vērtējums_7()

{

if(novērtēšanas_vienības_cena

{

vērtēšanas_vienības_cena = novērtējuma_vienības_cena * 10 + 7;

page_valuation_unit_price_refresh();

}

}

nederīgs lapas_vērtējums_8()

{

if(novērtēšanas_vienības_cena

{

vērtēšanas_vienības_cena = novērtējuma_vienības_cena * 10 + 8;

page_valuation_unit_price_refresh();

}

}

spēkā neesošs lapas_vērtējums_9()

{

if(novērtēšanas_vienības_cena

{

vērtēšanas_vienības_cena = novērtējuma_vienības_cena * 10 + 9;

page_valuation_unit_price_refresh();

}

}

spēkā neesošs lapas_vērtējums_0()

{

if(novērtēšanas_vienības_cena

{

vērtēšanas_vienības_cena = novērtējuma_vienības_cena * 10 + 0;

page_valuation_unit_price_refresh();

}

}

Void page_valuation_back()

{

vērtēšanas_vienības_cena = vērtēšanas_vienības_cena / 10;

page_valuation_unit_price_refresh();

}

Void page_valuation_clear()

{

vērtēšanas_vienības_cena = 0;

page_valuation_unit_price_refresh();

}


Publicēšanas laiks: 28.04.2024