[ਓਪਨ ਸੋਰਸ] ਮਲਟੀਫੰਕਸ਼ਨਲ ਵਜ਼ਨਿੰਗ ਡਿਵਾਈਸ

——DWIN ਡਿਵੈਲਪਰ ਫੋਰਮ ਤੋਂ

ਇਸ ਅੰਕ ਵਿੱਚ, ਅਸੀਂ DWIN ਡਿਵੈਲਪਰ ਫੋਰਮ - ਮਲਟੀ-ਫੰਕਸ਼ਨ ਵੇਜ਼ਰ ਦੇ ਅਵਾਰਡ ਜੇਤੂ ਓਪਨ-ਸੋਰਸ ਕੇਸ ਨੂੰ ਅੱਗੇ ਵਧਾਉਂਦੇ ਹਾਂ। ਇੰਜੀਨੀਅਰ 4-ਇੰਚ ਦੀ COF ਸਮਾਰਟ ਸਕਰੀਨ ਨੂੰ ਅਪਣਾਉਂਦਾ ਹੈ, ਅਤੇ T5L OS ਕੋਰ ਅਤੇ HX711 ਮੋਡੀਊਲ ਅਤੇ 5kg ਪ੍ਰੈਸ਼ਰ ਸੈਂਸਰ ਸੈੱਟ ਵਿਚਕਾਰ ਡਾਟਾ ਇੰਟਰਐਕਸ਼ਨ ਰਾਹੀਂ, ਉਪਭੋਗਤਾ ਆਸਾਨੀ ਨਾਲ ਗਿਣਤੀ ਡਿਸਪਲੇ ਫੰਕਸ਼ਨਾਂ ਜਿਵੇਂ ਕਿ ਭਾਰ, ਯੂਨਿਟ ਦੀ ਕੀਮਤ, ਕੁੱਲ ਕੀਮਤ, ਟਾਰ, ਆਦਿ ਦਾ ਅਹਿਸਾਸ ਕਰ ਸਕਦੇ ਹਨ। ., ਅਤੇ ਨਾਲ ਹੀ ਗਿਣਤੀ ਦੇ ਫੰਕਸ਼ਨ, ਵਜ਼ਨ ਬਦਲਣ ਵਾਲੇ ਵਕਰਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣਾ, ਅਤੇ ਤੋਲਣ ਦੀ ਸ਼ੁੱਧਤਾ ਨੂੰ ਠੀਕ ਕਰਨਾ, ਆਦਿ, ਤਾਂ ਜੋ ਇੱਕ ਸੁਵਿਧਾਜਨਕ ਅਤੇ ਕੁਸ਼ਲ ਤੋਲ ਅਨੁਭਵ ਦਾ ਆਨੰਦ ਲੈਣ ਲਈ ਵੱਖ-ਵੱਖ ਐਪਲੀਕੇਸ਼ਨ ਦ੍ਰਿਸ਼ਾਂ ਵਿਚਕਾਰ ਸਵਿਚ ਕਰਨਾ ਆਸਾਨ ਹੋਵੇ।

1. UI ਵਿਕਾਸ

f26af533d43728cd210e0f7af5e7acc

2.C51 ਡਿਜ਼ਾਈਨ

ਕੀਮਤ ਫੰਕਸ਼ਨ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਤੋਲਣ ਵਾਲੇ ਲਈ ਸੰਦਰਭ ਕੋਡ ਦਾ ਹਿੱਸਾ ਹੇਠ ਲਿਖੇ ਅਨੁਸਾਰ ਹੈ:

// ਕੀਮਤ ਪੰਨਾ====================

#ਵੈਲਯੂਏਸ਼ਨ_UNIT_PRICE_ADDR 0x1010 ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ

# VALUE_GRAM_ADDR 0x1000 ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ

#ਵੈਲਯੂਏਸ਼ਨ_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};

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਇਕਾਈ_ਕੀਮਤ

{

ਟੈਸਟ_ਡਿਸਪਲੇ[0] = ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ / 100% 10 + 0x30;

test_display[1] = '.';

ਟੈਸਟ_ਡਿਸਪਲੇ[2] = ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ / 10% 10 + 0x30;

test_display[3] = ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_UNIT_PRICE_ADDR, test_display, 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, test_display, 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, test_display, 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, test_display, 4);

}

}

 

// ਵਜ਼ਨ ਰਿਫਰੈਸ਼

void page_valuation_weight_refresh()

{

uint8_t test_display[10] = {0x30};

uint32_t gram_display = 0;

ਜੇਕਰ (ਗ੍ਰਾਮ_ਮੁੱਲ >= ਮੁੱਲਾਂਕਣ_ਸਜਾਵਟ)

{

gram_display = gram_value - valuation_decorticate;

if(gram_display

{

ਟੈਸਟ_ਡਿਸਪਲੇ[0] = ਗ੍ਰਾਮ_ਡਿਸਪਲੇ / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gram_display

{

ਟੈਸਟ_ਡਿਸਪਲੇ[0] = ਗ੍ਰਾਮ_ਡਿਸਪਲੇ / 10% 10 + 0x30;

ਟੈਸਟ_ਡਿਸਪਲੇ[1] = ਗ੍ਰਾਮ_ਡਿਸਪਲੇ / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gram_display

{

ਟੈਸਟ_ਡਿਸਪਲੇ[0] = ਗ੍ਰਾਮ_ਡਿਸਪਲੇ / 100% 10 + 0x30;

ਟੈਸਟ_ਡਿਸਪਲੇ[1] = ਗ੍ਰਾਮ_ਡਿਸਪਲੇ / 10% 10 + 0x30;

ਟੈਸਟ_ਡਿਸਪਲੇ[2] = ਗ੍ਰਾਮ_ਡਿਸਪਲੇ / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

else if(gram_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, test_display, 3);

}

else if(gram_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, test_display, 3);

}

}

ਹੋਰ

{

dgus_show_text_value_set(VALUATION_GRAM_ADDR, test_display, 3);

}

}

 

// ਕੁੱਲ ਕੀਮਤ ਰਿਫਰੈਸ਼

void page_valuation_price_refresh()

{

uint32_t ਕੀਮਤ_ਮੁੱਲ = 0;

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

ਜੇਕਰ (ਗ੍ਰਾਮ_ਮੁੱਲ >= ਮੁੱਲਾਂਕਣ_ਸਜਾਵਟ)

{

price_value = (gram_value - valuation_decorticate) * valuation_unit_price * 2 / 1000;

ਜੇਕਰ (ਕੀਮਤ_ਮੁੱਲ

{

ਟੈਸਟ_ਡਿਸਪਲੇ[0] = ਕੀਮਤ_ਮੁੱਲ / 100 % 10 + 0x30;

test_display[1] = '.';

ਟੈਸਟ_ਡਿਸਪਲੇ[2] = ਕੀਮਤ_ਮੁੱਲ / 10% 10 + 0x30;

ਟੈਸਟ_ਡਿਸਪਲੇ[3] = ਕੀਮਤ_ਮੁੱਲ / 1% 10 + 0x30;

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 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_TOTAL_PRICES_ADDR, test_display, 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_TOTAL_PRICES_ADDR, test_display, 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_TOTAL_PRICES_ADDR, test_display, 4);

}

}

ਹੋਰ

{

dgus_show_text_value_set(VALUATION_TOTAL_PRICES_ADDR, test_display, 4);

}

}

void page_valuation_decorticate()

{

valuation_decorticate = ਗ੍ਰਾਮ_ਮੁੱਲ;

page_valuation_weight_refresh();

}

void page_valuation_1()

{

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ

{

valuation_unit_price = valuation_unit_price * 10 + 1;

page_valuation_unit_price_refresh();

}

}

void page_valuation_2()

{

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ

{

valuation_unit_price = valuation_unit_price * 10 + 2;

page_valuation_unit_price_refresh();

}

}

void page_valuation_3()

{

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ

{

valuation_unit_price = valuation_unit_price * 10 + 3;

page_valuation_unit_price_refresh();

}

}

void page_valuation_4()

{

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ

{

valuation_unit_price = valuation_unit_price * 10 + 4;

page_valuation_unit_price_refresh();

}

}

void page_valuation_5()

{

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ

{

valuation_unit_price = valuation_unit_price * 10 + 5;

page_valuation_unit_price_refresh();

}

}

void page_valuation_6()

{

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ

{

valuation_unit_price = valuation_unit_price * 10 + 6;

page_valuation_unit_price_refresh();

}

}

void page_valuation_7()

{

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ

{

valuation_unit_price = valuation_unit_price * 10 + 7;

page_valuation_unit_price_refresh();

}

}

void page_valuation_8()

{

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ

{

valuation_unit_price = valuation_unit_price * 10 + 8;

page_valuation_unit_price_refresh();

}

}

void page_valuation_9()

{

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ

{

valuation_unit_price = valuation_unit_price * 10 + 9;

page_valuation_unit_price_refresh();

}

}

void page_valuation_0()

{

ਜੇਕਰ (ਮੁਲਾਂਕਣ_ਯੂਨਿਟ_ਕੀਮਤ

{

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