[منبع باز] دستگاه توزین چند منظوره

——از انجمن توسعه دهندگان DWIN

در این شماره، ما پرونده منبع باز برنده جایزه انجمن توسعه دهندگان DWIN - وزن ساز چند منظوره را فشار می دهیم. این مهندس یک صفحه نمایش هوشمند 4 اینچی COF را اتخاذ می کند و از طریق تعامل داده بین هسته سیستم عامل T5L و ماژول HX711 و مجموعه سنسور فشار 5 کیلوگرمی، کاربران می توانند به راحتی به عملکردهای نمایشگر شمارش مانند وزن، قیمت واحد، قیمت کل، وزن و غیره پی ببرند. و همچنین عملکردهای شمارش، ردیابی منحنی های تغییر وزن، و تصحیح دقت توزین و غیره، به طوری که به راحتی می توان بین سناریوهای مختلف برنامه جابجا شد تا از یک تجربه وزن کشی راحت و کارآمد لذت برد.

1. توسعه UI

f26af533d43728cd210e0f7af5e7acc

2.C51 طراحی

بخشی از کد مرجع برای توزین برای اجرای تابع قیمت گذاری به شرح زیر است:

// صفحه قیمت گذاری====================

#define VALUATION_UNIT_PRICE_ADDR 0x1010

#define VALUATION_GRAM_ADDR 0x1000

#define VALUATION_TOTAL_PRICES_ADDR 0x1020

uint32_t valuation_decorticate = 0; // قیمت گذاری وزن خالص

uint32_t valuation_unit_price = 0; //قیمت واحد

// نوسازی قیمت واحد

void page_valuation_unit_price_refresh()

{

uint8_t test_display[10] = {0};

if(valuation_unit_price

{

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(valuation_unit_price

{

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);

}

other if (valuation_unit_price

{

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(valuation_unit_price

{

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 (گرم_نمایش

{

test_display[0] = gram_display / 1 % 10 + 0x30;

dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);

}

else if (گرم_نمایش

{

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 (گرم_نمایش

{

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 (گرم_نمایش

{

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 (گرم_نمایش

{

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 price_value = 0;

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

if(gram_value >= valuation_decorticate)

{

قیمت_ارزش = (گرم_ارزش - valuation_decorticate) * valuation_unit_price * 2 / 1000;

if (price_value

{

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);

}

other if (price_value

{

test_display[0] = price_value / 10000 % 10 + 0x30;

test_display[1] = price_value / 1000 % 10 + 0x30;

test_display[2] = price_value / 100 % 10 + 0x30;

test_display[3] = '.';

test_display[4] = price_value / 10 % 10 + 0x30;

test_display[5] = price_value / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR، test_display، 4);

}

other if (price_value

{

test_display[0] = price_value / 100000 % 10 + 0x30;

test_display[1] = price_value / 10000 % 10 + 0x30;

test_display[2] = price_value / 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] = price_value / 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()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 1;

page_valuation_unit_price_refresh();

}

}

void page_valuation_2()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 2;

page_valuation_unit_price_refresh();

}

}

void page_valuation_3()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 3;

page_valuation_unit_price_refresh();

}

}

void page_valuation_4()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 4;

page_valuation_unit_price_refresh();

}

}

void page_valuation_5()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 5;

page_valuation_unit_price_refresh();

}

}

void page_valuation_6()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 6;

page_valuation_unit_price_refresh();

}

}

void page_valuation_7()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 7;

page_valuation_unit_price_refresh();

}

}

void page_valuation_8()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 8;

page_valuation_unit_price_refresh();

}

}

void page_valuation_9()

{

if(valuation_unit_price

{

valuation_unit_price = valuation_unit_price * 10 + 9;

page_valuation_unit_price_refresh();

}

}

void page_valuation_0()

{

if(valuation_unit_price

{

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()

{

valuation_unit_price = 0;

page_valuation_unit_price_refresh();

}


زمان ارسال: آوریل 28-2024