——פֿון DWIN דעוועלאָפּער פאָרום
אין דעם אַרויסגעבן, מיר שטופּן די אַוואָרד-ווינינג אָפֿן מקור פאַל פון DWIN דעוועלאָפּער פאָרום - מולטי-פונקציע וועיגהער. דער ינזשעניר אַדאַפּץ אַ 4-אינטש COF קלוג פאַרשטעלן, און דורך די דאַטן ינטעראַקשאַן צווישן T5L OS האַרץ און HX711 מאָדולע און 5 קג דרוק סענסער שטעלן, ניצערס קענען לייכט פאַרשטיין די קאַונטינג אַרויסווייַזן פאַנגקשאַנז אַזאַ ווי וואָג, אַפּאַראַט פּרייַז, גאַנץ פּרייַז, טאַרע, עטק. ., ווי געזונט ווי די פאַנגקשאַנז פון קאַונטינג, טראַקינג פון וואָג טוישן קורוועס, און קערעקטינג ווייער אַקיעראַסי, אאז"ו ו, אַזוי אַז עס איז גרינג צו באַשטימען צווישן פאַרשידענע אַפּלאַקיישאַן סינעריאָוז צו געניסן אַ באַקוועם און עפעקטיוו ווייינג דערפאַרונג.
1. וי אַנטוויקלונג
![f26af533d43728cd210e0f7af5e7acc](https://ecdn6.globalso.com/upload/p/1355/source/2024-06/665f077223d2b27894.png)
2.C51 פּלאַן
טייל פון דער רעפֿערענץ קאָד פֿאַר די ווייער צו ינסטרומענט די פּרייסינג פונקציע איז ווי גייט:
// פּרייסינג בלאַט===================
# דעפינירן VALUATION_UNIT_PRICE_ADDR 0x1010
# דעפינירן VALUATION_GRAM_ADDR 0x1000
# דעפינירן VALUATION_TOTAL_PRICES_ADDR 0x1020
וינט32_ט וואַלואַטיאָן_דעקאָרטיקאַטע = 0; // פּרייסינג טאַרע וואָג
וינט32_ט וואַלואַטיאָן_וניט_פּרייס = 0; // יוניט פּרייַז
// אַפּאַראַט פּרייז דערפרישן
void page_valuation_unit_price_refresh()
{
uint8_t test_display[10] = {0};
אויב (וואַליויישאַן_וניט_פּרייַז
{
test_display[0] = וואַלואַטיאָן_וניט_פּרייס / 100% 10 + 0קס30;
test_display[1] = '.';
טעסט_דיספּלייַ[2] = וואַלואַטיאָן_וניט_פּרייס / 10% 10 + 0קס30;
טעסט_דיספּלייַ[3] = וואַלואַטיאָן_וניט_פּרייס / 1% 10 + 0קס30;
dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
אַנדערש אויב (וואַליויישאַן_וניט_פּרייַז
{
test_display[0] = וואַלואַטיאָן_וניט_פּרייַס / 1000% 10 + 0קס30;
test_display[1] = וואַלואַטיאָן_וניט_פּרייס / 100% 10 + 0קס30;
test_display[2] = '.';
טעסט_דיספּלייַ[3] = וואַלואַטיאָן_וניט_פּרייַס / 10% 10 + 0קס30;
test_display[4] = וואַלואַטיאָן_וניט_פּרייַס / 1% 10 + 0x30;
dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
אַנדערש אויב (וואַליואַטיאָן_וניט_פּרייַז
{
טעסט_דיספּלייַ[0] = וואַלואַטיאָן_וניט_פּרייס / 10000% 10 + 0קס30;
טעסט_דיספּלייַ[1] = וואַלואַטיאָן_וניט_פּרייַז / 1000% 10 + 0קס30;
test_display[2] = וואַלואַטיאָן_וניט_פּרייַז / 100% 10 + 0קס30;
test_display[3] = '.';
טעסט_דיספּלייַ[4] = וואַלואַטיאָן_וניט_פּרייס / 10% 10 + 0קס30;
טעסט_דיספּלייַ[5] = וואַלואַטיאָן_וניט_פּרייס / 1% 10 + 0קס30;
dgus_show_text_value_set (VALUATION_UNIT_PRICE_ADDR, test_display, 4);
}
אַנדערש אויב (וואַליואַטיאָן_וניט_פּרייַז
{
test_display[0] = וואַלואַטיאָן_וניט_פּרייַז / 100000% 10 + 0קס30;
טעסט_דיספּלייַ[1] = וואַלואַטיאָן_וניט_פּרייס / 10000% 10 + 0קס30;
טעסט_דיספּלייַ[2] = וואַלואַטיאָן_וניט_פּרייַס / 1000% 10 + 0קס30;
test_display[3] = וואַלואַטיאָן_וניט_פּרייס / 100% 10 + 0קס30;
test_display[4] = '.';
test_display[5] = וואַלואַטיאָן_וניט_פּרייַס / 10% 10 + 0קס30;
טעסט_דיספּלייַ[6] = וואַלואַטיאָן_וניט_פּרייס / 1% 10 + 0קס30;
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;
אויב (גראַם_וואַליו>= וואַלואַטיאָן_דעקאָרטיקאַטע)
{
גראַם_דיספּלייַ = גראַם_וואַלוע - וואַלואַטיאָן_דעקאָרטיקאַטע;
אויב (גראַם_ווייַז
{
test_display[0] = גראַם_דיספּלייַ / 1% 10 + 0x30;
dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);
}
אַנדערש אויב (גראַם_דיספּלייַ
{
טעסט_דיספּלייַ[0] = גראַם_דיספּלייַ / 10% 10 + 0קס30;
טעסט_דיספּלייַ[1] = גראַם_דיספּלייַ / 1% 10 + 0קס30;
dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);
}
אַנדערש אויב (גראַם_דיספּלייַ
{
טעסט_דיספּלייַ[0] = גראַם_דיספּלייַ / 100% 10 + 0קס30;
טעסט_דיספּלייַ[1] = גראַם_דיספּלייַ / 10% 10 + 0קס30;
טעסט_דיספּלייַ[2] = גראַם_דיספּלייַ / 1% 10 + 0קס30;
dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);
}
אַנדערש אויב (גראַם_דיספּלייַ
{
טעסט_דיספּלייַ[0] = גראַם_דיספּלייַ / 1000% 10 + 0קס30;
טעסט_דיספּלייַ[1] = גראַם_דיספּלייַ / 100% 10 + 0קס30;
טעסט_דיספּלייַ[2] = גראַם_דיספּלייַ / 10% 10 + 0קס30;
טעסט_דיספּלייַ[3] = גראַם_דיספּלייַ / 1% 10 + 0קס30;
dgus_show_text_value_set (VALUATION_GRAM_ADDR, test_display, 3);
}
אַנדערש אויב (גראַם_דיספּלייַ
{
טעסט_דיספּלייַ[0] = גראַם_דיספּלייַ / 10000% 10 + 0קס30;
טעסט_דיספּלייַ[1] = גראַם_דיספּלייַ / 1000% 10 + 0קס30;
טעסט_דיספּלייַ[2] = גראַם_דיספּלייַ / 100% 10 + 0קס30;
טעסט_דיספּלייַ[3] = גראַם_דיספּלייַ / 10% 10 + 0קס30;
טעסט_דיספּלייַ[4] = גראַם_דיספּלייַ / 1% 10 + 0קס30;
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()
{
וינט32_ט פּרייז_וואַלוע = 0;
uint8_t test_display[10] = {0x30, '.', 0x30, 0x30};
אויב (גראַם_וואַליו>= וואַלואַטיאָן_דעקאָרטיקאַטע)
{
פּרייז_וואַלוע = (גראַמ_וואַלוע - וואַלואַטיאָן_דעקאָרטיקאַטע) * וואַלואַטיאָן_וניט_פּרייַס * 2 / 1000;
אויב (פּרייַז_ווערט
{
test_display[0] = פּרייז_וואַלוע / 100% 10 + 0קס30;
test_display[1] = '.';
טעסט_דיספּלייַ[2] = פּרייז_וואַליו / 10% 10 + 0קס30;
test_display[3] = פּרייז_וואַלוע / 1% 10 + 0x30;
dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
אַנדערש אויב (פּרייַז_וואַלי
{
טעסט_דיספּלייַ[0] = פּרייז_וואַליו / 1000% 10 + 0קס30;
טעסט_דיספּלייַ[1] = פּרייז_וואַליו / 100% 10 + 0קס30;
test_display[2] = '.';
טעסט_דיספּלייַ[3] = פּרייז_וואַליו / 10% 10 + 0קס30;
טעסט_דיספּלייַ[4] = פּרייז_וואַליו / 1% 10 + 0קס30;
dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
אַנדערש אויב (פּרייַז_וואַלי
{
טעסט_דיספּלייַ[0] = פּרייז_וואַליו / 10000% 10 + 0קס30;
טעסט_דיספּלייַ[1] = פּרייז_וואַליו / 1000% 10 + 0קס30;
טעסט_דיספּלייַ[2] = פּרייז_וואַליו / 100% 10 + 0קס30;
test_display[3] = '.';
טעסט_דיספּלייַ[4] = פּרייז_וואַליו / 10% 10 + 0קס30;
טעסט_דיספּלייַ[5] = פּרייז_וואַליו / 1% 10 + 0קס30;
dgus_show_text_value_set (VALUATION_TOTAL_PRICES_ADDR, test_display, 4);
}
אַנדערש אויב (פּרייַז_וואַלי
{
טעסט_דיספּלייַ[0] = פּרייז_וואַליו / 100000% 10 + 0קס30;
טעסט_דיספּלייַ[1] = פּרייז_וואַליו / 10000% 10 + 0קס30;
טעסט_דיספּלייַ[2] = פּרייז_וואַליו / 1000% 10 + 0קס30;
test_display[3] = פּרייז_וואַלוע / 100% 10 + 0קס30;
test_display[4] = '.';
test_display[5] = פּרייז_וואַלוע / 10% 10 + 0x30;
טעסט_דיספּלייַ[6] = פּרייז_וואַליו / 1% 10 + 0קס30;
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()
{
וואַלואַטיאָן_דעקאָרטיקאַטע = גראַם_וואַליו;
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