——Dari Forum Pembangun DWIN
Sarung sumber terbuka yang memenangi anugerah yang disyorkan oleh forum DWIN boleh digunakan dalam industri pembinaan untuk mengesan kandungan komponen simen - alat pengukur pelbagai amaun simen berdasarkan skrin pintar T5L.Jurutera menggunakan skrin pintar T5L untuk mengawal modul pengesanan berat elektronik, modul pengukuran suhu, modul pemanasan, penderia kelembapan dan modul pencampuran untuk merealisasikan fungsi pengesanan larutan pepejal dan kandungan komponen simen cecair, dan menyokong paparan kadar masa nyata, tetapan suhu, rekod sejarah, tetapan parameter peringkat dan fungsi lain.
1. Struktur Program
2. Paparan Bahan UI
3.Contoh Pembangunan UI
4.C51 reka bentuk perisian
Program arahan permulaan untuk jurutera berkomunikasi dengan papan kawalan menggunakan port bersiri T5L 2 adalah seperti berikut:
batal app_init()
{
is_testing = 0;
test_run_time = 0;
is_sec = 0;
tempoh1 = 0;
ialah_tempoh1 = 0;
uart2_init(115200);
send_bait("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);
}
Program utama skrin pintar T5L yang berinteraksi dengan papan kawalan untuk merealisasikan fungsi pengesanan komposisi simen adalah seperti berikut:
batal 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));
combuff[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 += (kelajuan_val*2.45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
} else if(uart2buf[0]==0x04)
{
jumlah_num = uart2buf[1]*256+uart2buf[2];
} else if(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
jika(ialah_tempoh1)
{
ialah_tempoh1 = 0;
t_sample();
if(is_testing&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
if(is_btn_scan==0)
kembali;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
jika(btn_val==0)
kembali;
jika(btn_val<=0x10)
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Rujuk kod sumber untuk maklumat lanjut.
Masa siaran: Dis-02-2023