——Vum DWIN Entwéckler Forum
De Präis-Zouschlag Open Source Fall recommandéiert vum DWIN Forum kann an der Bauindustrie benotzt ginn fir Zementkomponentinhalt z'entdecken - en Zement Multi-Betrag Messinstrument baséiert op T5L Smart Screen.Ingenieuren benotzen den T5L Smart Écran fir den elektronesche Gewiichtserkennungsmodul, Temperaturmessmodul, Heizmodul, Feuchtigkeitsensor a Mëschmodul ze kontrolléieren fir d'Erkennungsfunktioun vu festen Léisung a flëssege Zementkomponentinhalt ze realiséieren, an Echtzäit Display vum Taux z'ënnerstëtzen, Temperatur Astellung, Geschicht Rekord, Stage Parameter Astellung an aner Funktiounen.
1. Programm Struktur
2.UI Material Display
3.UI Entwécklung Beispill
4.C51 Software Design
Den Initialiséierungskommandoprogramm fir den Ingenieur fir mat der Kontrollplat ze kommunizéieren mam T5L Serienport 2 ass wéi follegt:
void app_init()
{
ass_test = 0;
test_run_zeit = 0;
ass_sec = 0;
Period1 = 0;
ass_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",sizeof("AT+START\r\n")-1);
}
Den Haaptprogramm vum T5L intelligenten Bildschierm interagéiert mat der Kontrollplat fir d'Funktioun vun der Zementkompositiounserkennung ze realiséieren ass wéi follegt:
void btn_click_handler()
{
#define BTN_VAL_ADDR 0x1000
u16 btn_val;
wann (ass_testen&&ass_sec)
{
ass_sec = 0;
test_run_Zäit++;
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);
} anescht wann (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;
}
}
wann (ass_period1)
{
ass_period1 = 0;
t_sample();
if(ass_testing&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
wann (is_btn_scan==0)
zréck;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
wann(btn_val==0)
zréck;
wann(btn_val<=0x10)
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Kuckt de Quellcode fir méi.
Post Zäit: Dez-02-2023