[Нээлттэй эх сурвалж] Олон үйлдэлт жинлэх төхөөрөмж

——DWIN хөгжүүлэгчдийн форумаас

Энэ дугаарт бид DWIN Developer Forum - Олон үйлдэлт жинлүүрийн шагналт нээлттэй эх сурвалжийг танилцуулж байна. Инженер нь 4 инчийн COF ухаалаг дэлгэцийг ашигладаг бөгөөд T5L OS цөм болон HX711 модуль болон 5 кг даралт мэдрэгчийн иж бүрдэл хоорондын өгөгдлийн харилцан үйлчлэлээр хэрэглэгчид жин, нэгжийн үнэ, нийт үнэ, таар гэх мэт тоолох дэлгэцийн функцийг хялбархан хэрэгжүүлэх боломжтой. ., түүнчлэн тоолох, жингийн өөрчлөлтийн муруйг хянах, жинлүүрийн нарийвчлалыг засах гэх мэт функцууд нь өөр өөр хэрэглээний хувилбаруудын хооронд шилжихэд хялбар бөгөөд тохиромжтой, үр дүнтэй жинлэх туршлагыг мэдрэх болно.

1. UI хөгжүүлэлт

f26af533d43728cd210e0f7af5e7acc

2.C51 Дизайн

Жинлүүрийн үнийн функцийг хэрэгжүүлэх лавлах кодын хэсэг нь дараах байдалтай байна.

// Үнийн хуудас==================

#ҮНЭЛГЭЭНИЙ_НЭГЖ_ҮНИЙН_ADDR 0x1010-ыг тодорхойлох

#VALUATION_GRAM_ADDR 0x1000-г тодорхойлох

#ҮНЭЛГЭЭНИЙ_НИЙТ_ҮНИЙ_НЭМЭГДСИЙГ 0x1020 гэж тодорхойлох

uint32_t valuation_decorticate = 0; // Тара жингийн үнэ

uint32_t valuation_unit_price = 0; //Нэгжийн үнэ

// Нэгжийн үнийг шинэчлэх

хүчингүй хуудас_үнэлгээний_нэгжийн_үнийн_шинэлэх()

{

uint8_t test_display[10] = {0};

хэрэв(үнэлгээний_нэгжийн үнэ

{

туршилтын_дэлгэц[0] = үнэлгээний_нэгжийн үнэ / 100 % 10 + 0x30;

test_display[1] = '.';

туршилтын_дэлгэц[2] = үнэлгээний_нэгжийн үнэ / 10 % 10 + 0x30;

туршилтын_дэлгэц[3] = үнэлгээний_нэгжийн үнэ / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, туршилтын_дэлгэц, 4);

}

өөр бол (үнэлгээний_нэгжийн үнэ

{

туршилтын_дэлгэц[0] = үнэлгээний_нэгжийн үнэ / 1000 % 10 + 0x30;

туршилтын_дэлгэц[1] = үнэлгээний_нэгжийн үнэ / 100 % 10 + 0x30;

test_display[2] = '.';

туршилтын_дэлгэц[3] = үнэлгээний_нэгжийн үнэ / 10 % 10 + 0x30;

туршилтын_дэлгэц[4] = үнэлгээний_нэгжийн үнэ / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, туршилтын_дэлгэц, 4);

}

өөр бол (үнэлгээний_нэгжийн үнэ

{

туршилтын_дэлгэц[0] = үнэлгээний_нэгжийн үнэ / 10000 % 10 + 0x30;

туршилтын_дэлгэц[1] = үнэлгээний_нэгжийн үнэ / 1000 % 10 + 0x30;

туршилтын_дэлгэц[2] = үнэлгээний_нэгжийн үнэ / 100 % 10 + 0x30;

test_display[3] = '.';

туршилтын_дэлгэц[4] = үнэлгээний_нэгжийн үнэ / 10 % 10 + 0x30;

туршилтын_дэлгэц[5] = үнэлгээний_нэгжийн үнэ / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, туршилтын_дэлгэц, 4);

}

өөр бол (үнэлгээний_нэгжийн үнэ

{

туршилтын_дэлгэц[0] = үнэлгээний_нэгжийн үнэ / 100000 % 10 + 0x30;

туршилтын_дэлгэц[1] = үнэлгээний_нэгжийн үнэ / 10000 % 10 + 0x30;

туршилтын_дэлгэц[2] = үнэлгээний_нэгжийн үнэ / 1000 % 10 + 0x30;

тестийн_дэлгэц[3] = үнэлгээний_нэгжийн үнэ / 100 % 10 + 0x30;

test_display[4] = '.';

туршилтын_дэлгэц[5] = үнэлгээний_нэгжийн үнэ / 10 % 10 + 0x30;

туршилтын_дэлгэц[6] = үнэлгээний_нэгжийн үнэ / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, туршилтын_дэлгэц, 4);

}

}

 

// Жин сэргээх

хүчингүй хуудас_үнэлгээний_жин_шинэлэх()

{

uint8_t test_display[10] = {0x30};

uint32_t gram_display = 0;

хэрэв (грамын_утга >= үнэлгээний_чимэглэл)

{

gram_display = gram_value - үнэлгээний_decorticate;

хэрэв (грамын_дэлгэц

{

test_display[0] = грамм_дэлгэц / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, туршилтын_дэлгэц, 3);

}

өөрөөр бол (грамын_дэлгэц

{

test_display[0] = грамм_дэлгэц / 10 % 10 + 0x30;

test_display[1] = грамын_дэлгэц / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, туршилтын_дэлгэц, 3);

}

өөр бол (грамын_дэлгэц

{

test_display[0] = грамм_дэлгэц / 100 % 10 + 0x30;

туршилтын_дэлгэц[1] = граммын_дэлгэц / 10 % 10 + 0x30;

тест_дэлгэц[2] = грамын_дэлгэц / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, туршилтын_дэлгэц, 3);

}

өөрөөр бол (грамын_дэлгэц

{

test_display[0] = грамм_дэлгэц / 1000 % 10 + 0x30;

туршилтын_дэлгэц[1] = грамм_дэлгэц / 100 % 10 + 0x30;

тест_дэлгэц[2] = грамын_дэлгэц / 10 % 10 + 0x30;

туршилтын_дэлгэц[3] = грамм_дэлгэц / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, туршилтын_дэлгэц, 3);

}

өөр бол (грамын_дэлгэц

{

test_display[0] = грамм_дэлгэц / 10000 % 10 + 0x30;

туршилтын_дэлгэц[1] = грамм_дэлгэц / 1000 % 10 + 0x30;

туршилтын_дэлгэц[2] = грамм_дэлгэц / 100 % 10 + 0x30;

тест_дэлгэц[3] = грамын_дэлгэц / 10 % 10 + 0x30;

тест_дэлгэц[4] = грамын_дэлгэц / 1 % 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, туршилтын_дэлгэц, 3);

}

}

өөр

{

dgus_show_text_value_set(VALUATION_GRAM_ADDR, туршилтын_дэлгэц, 3);

}

}

 

// Нийт үнийн шинэчлэл

хүчингүй хуудас_үнэлгээний_үнийн_шинэлэх()

{

uint32_t үнэ_үнэ = 0;

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

хэрэв (грамын_утга >= үнэлгээний_чимэглэл)

{

үнэ_үнэ = (грамын_үнэ цэнэ - үнэлгээний_чимэглэл) * үнэлгээний_нэгж_үнэ * 2 / 1000;

хэрэв (үнэ_үнэ

{

тест_дэлгэц[0] = үнэ_үнэ / 100 % 10 + 0x30;

test_display[1] = '.';

туршилтын_дэлгэц[2] = үнэ_үнэ / 10 % 10 + 0x30;

тест_дэлгэц[3] = үнэ_үнэ / 1 % 10 + 0x30;

dgus_show_text_value_set(ҮНЭ_НИЙТ_ҮНИЙН_ADDR, туршилтын_дэлгэц, 4);

}

өөр бол (үнэ_үнэ

{

туршилтын_дэлгэц[0] = үнэ_үнэ / 1000 % 10 + 0x30;

туршилтын_дэлгэц[1] = үнэ_үнэ / 100 % 10 + 0x30;

test_display[2] = '.';

туршилтын_дэлгэц[3] = үнэ_үнэ / 10 % 10 + 0x30;

туршилтын_дэлгэц[4] = үнэ_үнэ / 1 % 10 + 0x30;

dgus_show_text_value_set(ҮНЭ_НИЙТ_ҮНИЙН_ADDR, туршилтын_дэлгэц, 4);

}

өөр бол (үнэ_үнэ

{

туршилтын_дэлгэц[0] = үнэ_үнэ / 10000 % 10 + 0x30;

туршилтын_дэлгэц[1] = үнэ_үнэ / 1000 % 10 + 0x30;

тест_дэлгэц[2] = үнэ_үнэ / 100 % 10 + 0x30;

test_display[3] = '.';

туршилтын_дэлгэц[4] = үнэ_үнэ / 10 % 10 + 0x30;

туршилтын_дэлгэц[5] = үнэ_үнэ / 1 % 10 + 0x30;

dgus_show_text_value_set(ҮНЭ_НИЙТ_ҮНИЙН_ADDR, туршилтын_дэлгэц, 4);

}

өөр бол (үнэ_үнэ

{

туршилтын_дэлгэц[0] = үнэ_үнэ / 100000 % 10 + 0x30;

туршилтын_дэлгэц[1] = үнэ_үнэ / 10000 % 10 + 0x30;

туршилтын_дэлгэц[2] = үнэ_үнэ / 1000 % 10 + 0x30;

туршилтын_дэлгэц[3] = үнэ_үнэ / 100 % 10 + 0x30;

test_display[4] = '.';

тест_дэлгэц[5] = үнэ_үнэ / 10 % 10 + 0x30;

туршилтын_дэлгэц[6] = үнэ_үнэ / 1 % 10 + 0x30;

dgus_show_text_value_set(ҮНЭ_НИЙТ_ҮНИЙН_ADDR, туршилтын_дэлгэц, 4);

}

}

өөр

{

dgus_show_text_value_set(ҮНЭ_НИЙТ_ҮНИЙН_ADDR, туршилтын_дэлгэц, 4);

}

}

хүчингүй хуудас_үнэлгээний_decorticate()

{

valuation_decorticate = грамм_утга;

page_valuation_weight_refresh();

}

хүчингүй хуудас_үнэлгээ_1()

{

хэрэв(үнэлгээний_нэгжийн_үнэ

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ * 10 + 1;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

}

хүчингүй хуудас_үнэлгээ_2()

{

хэрэв(үнэлгээний_нэгжийн_үнэ

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ * 10 + 2;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

}

хүчингүй хуудас_үнэлгээ_3()

{

хэрэв(үнэлгээний_нэгжийн_үнэ

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ * 10 + 3;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

}

хүчингүй хуудас_үнэлгээ_4()

{

хэрэв(үнэлгээний_нэгжийн_үнэ

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ * 10 + 4;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

}

хүчингүй хуудас_үнэлгээ_5()

{

хэрэв(үнэлгээний_нэгжийн_үнэ

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ * 10 + 5;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

}

хүчингүй хуудас_үнэлгээ_6()

{

хэрэв(үнэлгээний_нэгжийн_үнэ

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ * 10 + 6;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

}

хүчингүй хуудас_үнэлгээ_7()

{

хэрэв(үнэлгээний_нэгжийн_үнэ

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ * 10 + 7;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

}

хүчингүй хуудас_үнэлгээ_8()

{

хэрэв(үнэлгээний_нэгжийн_үнэ

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ * 10 + 8;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

}

хүчингүй хуудас_үнэлгээ_9()

{

хэрэв(үнэлгээний_нэгжийн_үнэ

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ * 10 + 9;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

}

хүчингүй хуудас_үнэлгээ_0()

{

хэрэв(үнэлгээний_нэгжийн_үнэ

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ * 10 + 0;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

}

хүчингүй хуудас_үнэлэх_буцах()

{

үнэлгээний_нэгжийн үнэ = үнэлгээний_нэгжийн үнэ / 10;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}

хүчингүй хуудас_үнэлгээ_clear()

{

үнэлгээний_нэгжийн үнэ = 0;

хуудасны_үнэлгээний_нэгжийн_үнийн_шинэлэх();

}


Шуудангийн цаг: 2024 оны 4-р сарын 28