[Open Source] Cement Multi-amount Measuring Instrument

—— DWIN Developer Forum မှ

DWIN ဖိုရမ်မှ အကြံပြုထားသော ဆုရ open source case ကို ဆောက်လုပ်ရေးလုပ်ငန်းတွင် အသုံးပြုနိုင်ပြီး T5L စမတ်ဖန်သားပြင်ပေါ်တွင် အခြေခံထားသည့် ဘိလပ်မြေအစိတ်အပိုင်းပါဝင်မှု ပမာဏတိုင်းတာခြင်းကိရိယာ - ဘိလပ်မြေအစိတ်အပိုင်းများစွာကို သိရှိနိုင်သည်။ အင်ဂျင်နီယာများသည် T5L စမတ်စခရင်ကို အသုံးပြု၍ အီလက်ထရွန်းနစ်အလေးချိန်ထောက်လှမ်းမှု module၊ အပူချိန်တိုင်းတာမှု module၊ အပူပေး module၊ အစိုဓာတ်အာရုံခံကိရိယာနှင့် ရောစပ်ထားသော module ကိုအသုံးပြု၍ အစိုင်အခဲဖြေရှင်းချက်နှင့် အရည်ဘိလပ်မြေအစိတ်အပိုင်းပါဝင်မှုတို့ကို သိရှိနားလည်နိုင်စေရန်နှင့် အချိန်နှင့်တစ်ပြေးညီ ပြသသည့်နှုန်းကို ပံ့ပိုးပေးရန်အတွက်၊ အပူချိန်ဆက်တင်၊ မှတ်တမ်းမှတ်တမ်း၊ အဆင့်သတ်မှတ်ချက်သတ်မှတ်ချက်နှင့် အခြားလုပ်ဆောင်ချက်များ။

1. ပရိုဂရမ်ဖွဲ့စည်းပုံ

accsb (1)

2.UI ရုပ်ထွက်မျက်နှာပြင်

accsb (2)
accsb (4)
accsb (3)
accsb (5)

3.UI ဖွံ့ဖြိုးတိုးတက်ရေးနမူနာ

accsb (၆)၊

4.C51 ဆော့ဖ်ဝဲဒီဇိုင်း

T5L serial port 2 ကို အသုံးပြု၍ control board နှင့် ဆက်သွယ်ရန်အတွက် အင်ဂျင်နီယာအတွက် ကနဦး command program သည် အောက်ပါအတိုင်းဖြစ်သည် ။

ပျက်ပြယ်သွားသော app_init()

{

is_testing = 0;

test_run_time = 0;

is_sec = 0;

period1 = 0;

is_period1 = 0;

uart2_init(115200);

send_bytes("AT+INIT=0\r\n",sizeof("AT+INIT=0\r\n")-1);

sys_delay_ms(2500);

sys_pic(1);

send_bytes("AT+START\r\n",အရွယ်အစား("AT+START\r\n")-1);

}

ဘိလပ်မြေဖွဲ့စည်းမှုကို ထောက်လှမ်းခြင်း၏လုပ်ဆောင်ချက်ကို သိရှိနားလည်ရန် T5L ဉာဏ်ရည်ဉာဏ်သွေးမျက်နှာပြင်၏ အဓိကပရိုဂရမ်မှာ အောက်ပါအတိုင်းဖြစ်သည်။

btn_click_handler() ပျက်ပြယ်

{

#Define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(is_testing&&is_sec)

{

is_sec = 0;

test_run_time++;

btn_val = sprintf(commbuff,"%02u:%02u",(u16)(test_run_time/60),(u16)(test_run_time%60));

commbuff[btn_val+1] = 0;

sys_write_vp(TEST_TIME_VP၊ commbuff၊5);

if(uart2rxsta&UART2_PACKET_OK)

{

if(uart2buf[0]==0x01&&uart2buf[1]==0x02)

{

init_weight = *(float*)(uart2buf+2);

init_weight *= (*(float*)flashdat);

sys_write_vp(0x1178၊ (u8*)&init_weight၊ 2);

}else if(uart2buf[0]==0x02&&uart2buf[1]==0x05)

{

init_ml = *(float*)(uart2buf+2);

init_ml /= (*(float*)flashdat+20);

sys_write_vp(0x1180၊ (u8*)&init_ml၊ 2);

}else if(uart2buf[0]==0x03&&uart2buf[1]==0x07)

{

speed_val = *(float*)(uart2buf+2);

disp_val += (speed_val*2.45f);

sys_write_vp(0x1180၊ (u8*)&disp_val၊ 2);

}else if(uart2buf[0]==0x04)

{

total_num = uart2buf[1]*256+uart2buf[2];

}else if(uart2buf[0]==0x05)

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

if(is_period1)

{

is_period1 = 0;

t_sample();

if(is_testing&&is_en_tmp)

sys_write_vp(0x1170,(u8*)&tmp,2);

}

if(is_btn_scan==0)

ပြန်လာ;

is_btn_scan = 0;

sys_read_vp(BTN_VAL_ADDR၊(u8*)&btn_val,1);

if(btn_val==0)

ပြန်လာ;

if(btn_val

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

sys_write_vp(BTN_VAL_ADDR၊(u8*)&btn_val,1);

}

 

နောက်ထပ်အတွက် အရင်းအမြစ်ကုဒ်ကို ကိုးကားပါ။


စာတိုက်အချိန်- ဒီဇင်ဘာ-၀၂-၂၀၂၃