——Iz foruma razvijalcev DWIN
Nagrajeni odprtokodni primer, ki ga priporoča forum DWIN, se lahko uporablja v gradbeništvu za zaznavanje vsebnosti cementnih komponent – merilni instrument za več količin cementa, ki temelji na pametnem zaslonu T5L.Inženirji uporabljajo pametni zaslon T5L za nadzor elektronskega modula za zaznavanje teže, modula za merjenje temperature, grelnega modula, senzorja vlage in mešalnega modula, da realizirajo funkcijo zaznavanja vsebnosti trdne raztopine in tekoče cementne komponente ter podpirajo prikaz stopnje v realnem času, nastavitev temperature, zapis zgodovine, nastavitev parametrov stopnje in druge funkcije.
1. Struktura programa
2.UI Material Display
3. Primer razvoja uporabniškega vmesnika
4.C51 načrtovanje programske opreme
Inicializacijski ukazni program za inženirja za komunikacijo z nadzorno ploščo prek serijskih vrat T5L 2 je naslednji:
void app_init()
{
je_testiranje = 0;
test_run_time = 0;
je_sek = 0;
obdobje1 = 0;
je_obdobje1 = 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",sizeof("AT+START\r\n")-1);
}
Glavni program inteligentnega zaslona T5L, ki sodeluje z nadzorno ploščo za uresničitev funkcije zaznavanja sestave cementa, je naslednji:
void btn_click_handler()
{
#define BTN_VAL_ADDR 0x1000
u16 btn_val;
če(je_testiranje&&je_sek)
{
je_sek = 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);
če(uart2rxsta&UART2_PACKET_OK)
{
če(uart2buf[0]==0x01&&uart2buf[1]==0x02)
{
init_weight = *(float*)(uart2buf+2);
init_weight *= (*(float*)flashdat);
sys_write_vp(0x1178, (u8*)&init_weight, 2);
}drugače če(uart2buf[0]==0x02&&uart2buf[1]==0x05)
{
init_ml = *(float*)(uart2buf+2);
init_ml /= (*(float*)flashdat+20);
sys_write_vp(0x1180, (u8*)&init_ml, 2);
}drugače če(uart2buf[0]==0x03&&uart2buf[1]==0x07)
{
hitrost_val = *(float*)(uart2buf+2);
disp_val += (speed_val*2,45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
}drugače če(uart2buf[0]==0x04)
{
total_num = uart2buf[1]*256+uart2buf[2];
}drugače če(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
če(je_obdobje1)
{
je_obdobje1 = 0;
t_vzorec();
if(is_testing&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
če(is_btn_scan==0)
vrnitev;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
če(btn_val==0)
vrnitev;
če(btn_val<=0x10)
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Za več glejte izvorno kodo.
Čas objave: 2. december 2023