——Del Fòrum de desenvolupadors de DWIN
En aquest número, impulsem el premiat cas de codi obert de DWIN Developer Forum - Multi-function Weigher. L'enginyer adopta una pantalla intel·ligent COF de 4 polzades i mitjançant la interacció de dades entre el nucli T5L OS i el mòdul HX711 i el conjunt de sensors de pressió de 5 kg, els usuaris poden adonar-se fàcilment de les funcions de visualització de recompte com ara el pes, el preu unitari, el preu total, la tara, etc. ., així com les funcions de recompte, seguiment de corbes de canvi de pes i correcció de la precisió de la pesadora, etc., de manera que sigui fàcil canviar entre diferents escenaris d'aplicació per gaudir d'una experiència de pesatge còmoda i eficient.
1. Desenvolupament de la IU
![f26af533d43728cd210e0f7af5e7acc](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f077223d2b27894.png)
2.C51 Disseny
Una part del codi de referència per a la pesadora per implementar la funció de preus és la següent:
// Pàgina de preus====================
#definir VALUATION_UNIT_PRICE_ADDR 0x1010
#definir VALUATION_GRAM_ADDR 0x1000
#define VALUATION_TOTAL_PRICES_ADDR 0x1020
uint32_t valoració_decorticate = 0; // Preu Pes de tara
uint32_t valuation_unit_price = 0; //Preu unitari
// Actualització del preu unitari
void page_valuation_unit_price_refresh()
{
uint8_t test_display[10] = {0};
if(preu_unitat_valoració
{
test_display[0] = preu_unitat_valoració / 100 % 10 + 0x30;
test_display[1] = '.';
pantalla_test[2] = preu_unitat_valoració / 10 % 10 + 0x30;
pantalla_test[3] = preu_unitat_valoració / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
else if (preu_unitat_valoració
{
test_display[0] = preu_unitat_valoració / 1000 % 10 + 0x30;
test_display[1] = preu_unitat_valoració / 100 % 10 + 0x30;
test_display[2] = '.';
pantalla_prova[3] = preu_unitat_valoració / 10 % 10 + 0x30;
test_display[4] = preu_unitat_valoració / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
else if (preu_unitat_valoració
{
test_display[0] = preu_unitat_valoració / 10000 % 10 + 0x30;
pantalla_prova[1] = preu_unitat_valoració / 1000 % 10 + 0x30;
pantalla_prova[2] = preu_unitat_valoració / 100 % 10 + 0x30;
test_display[3] = '.';
pantalla_test[4] = preu_unitat_valoració / 10 % 10 + 0x30;
pantalla_test[5] = preu_unitat_valoració / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
else if (preu_unitat_valoració
{
test_display[0] = preu_unitat_valoració / 100.000 % 10 + 0x30;
pantalla_prova[1] = preu_unitat_valoració / 10000 % 10 + 0x30;
pantalla_prova[2] = preu_unitat_valoració / 1000 % 10 + 0x30;
pantalla_prova[3] = preu_unitat_valoració / 100 % 10 + 0x30;
test_display[4] = '.';
test_display[5] = preu_unitat_valoració / 10 % 10 + 0x30;
pantalla_prova[6] = preu_unitat_valoració / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
}
// Actualització de pes
void page_valuation_weight_refresh()
{
uint8_t test_display[10] = {0x30};
uint32_t gram_display = 0;
if(valor_gram >= valoració_decorticat)
{
gram_display = valor_gram - valoració_decorticat;
if(visualització_gram
{
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;
pantalla_prova[1] = pantalla_grames / 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;
pantalla_prova[1] = visualització_grams / 1000 % 10 + 0x30;
test_display[2] = gram_display / 100 % 10 + 0x30;
pantalla_prova[3] = visualització_grames / 10 % 10 + 0x30;
test_display[4] = gram_display / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);
}
}
altra cosa
{
dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);
}
}
// Actualització del preu total
void page_valuation_price_refresh()
{
uint32_t valor_preu = 0;
uint8_t test_display[10] = {0x30, '.', 0x30, 0x30};
if(valor_gram >= valoració_decorticat)
{
valor_preu = (valor_gram - valoració_decorticat) * preu_unitat_valoració * 2/1000;
if(valor_preu
{
test_display[0] = valor_preu / 100 % 10 + 0x30;
test_display[1] = '.';
pantalla_prova[2] = valor_preu / 10 % 10 + 0x30;
pantalla_prova[3] = valor_preu / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
else if(valor_preu
{
test_display[0] = valor_preu / 1000 % 10 + 0x30;
pantalla_prova[1] = valor_preu / 100 % 10 + 0x30;
test_display[2] = '.';
pantalla_prova[3] = valor_preu / 10 % 10 + 0x30;
test_display[4] = valor_preu / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
else if(valor_preu
{
test_display[0] = valor_preu / 10000 % 10 + 0x30;
pantalla_prova[1] = valor_preu / 1000 % 10 + 0x30;
pantalla_prova[2] = valor_preu / 100 % 10 + 0x30;
test_display[3] = '.';
test_display[4] = valor_preu / 10 % 10 + 0x30;
test_display[5] = valor_preu / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
else if(valor_preu
{
pantalla_prova[0] = valor_preu / 100.000 % 10 + 0x30;
pantalla_prova[1] = valor_preu / 10000 % 10 + 0x30;
pantalla_prova[2] = valor_preu / 1000 % 10 + 0x30;
pantalla_prova[3] = valor_preu / 100 % 10 + 0x30;
test_display[4] = '.';
pantalla_prova[5] = valor_preu / 10 % 10 + 0x30;
pantalla_prova[6] = valor_preu / 1 % 10 + 0x30;
dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
}
altra cosa
{
dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
}
void page_valuation_decorticate()
{
valoració_decorticat = valor_gram;
page_valuation_weight_refresh();
}
void page_valuation_1()
{
if(preu_unitat_valoració
{
valuation_unit_price = valuation_unit_price * 10 + 1;
page_valuation_unit_price_refresh();
}
}
void page_valuation_2()
{
if(preu_unitat_valoració
{
valuation_unit_price = valuation_unit_price * 10 + 2;
page_valuation_unit_price_refresh();
}
}
void page_valuation_3()
{
if(preu_unitat_valoració
{
valuation_unit_price = valuation_unit_price * 10 + 3;
page_valuation_unit_price_refresh();
}
}
void page_valuation_4()
{
if(preu_unitat_valoració
{
valuation_unit_price = valuation_unit_price * 10 + 4;
page_valuation_unit_price_refresh();
}
}
void page_valuation_5()
{
if(preu_unitat_valoració
{
valuation_unit_price = valuation_unit_price * 10 + 5;
page_valuation_unit_price_refresh();
}
}
void page_valuation_6()
{
if(preu_unitat_valoració
{
valuation_unit_price = valuation_unit_price * 10 + 6;
page_valuation_unit_price_refresh();
}
}
void page_valuation_7()
{
if(preu_unitat_valoració
{
valuation_unit_price = valuation_unit_price * 10 + 7;
page_valuation_unit_price_refresh();
}
}
void page_valuation_8()
{
if(preu_unitat_valoració
{
valuation_unit_price = valuation_unit_price * 10 + 8;
page_valuation_unit_price_refresh();
}
}
void page_valuation_9()
{
if(preu_unitat_valoració
{
valuation_unit_price = valuation_unit_price * 10 + 9;
page_valuation_unit_price_refresh();
}
}
void page_valuation_0()
{
if(preu_unitat_valoració
{
valuation_unit_price = valuation_unit_price * 10 + 0;
page_valuation_unit_price_refresh();
}
}
void page_valuation_back()
{
valuation_unit_price = valuation_unit_price / 10;
page_valuation_unit_price_refresh();
}
void page_valuation_clear()
{
preu_unitat_valoració = 0;
page_valuation_unit_price_refresh();
}
Hora de publicació: 28-abril-2024