——DWIN-kehittäjäfoorumista
DWIN-foorumin suosittelemaa palkittua avoimen lähdekoodin koteloa voidaan käyttää rakennusteollisuudessa sementin komponenttipitoisuuden havaitsemiseen - T5L-älynäyttöön perustuva sementin monimääräinen mittauslaite. Insinöörit käyttävät T5L-älynäyttöä elektronisen painontunnistusmoduulin, lämpötilan mittausmoduulin, lämmitysmoduulin, kosteusanturin ja sekoitusmoduulin ohjaamiseen kiinteän liuoksen ja nestemäisen sementin komponenttien tunnistustoiminnon toteuttamiseksi ja nopeuden reaaliaikaisen näytön tukemiseksi, lämpötilan asetus, historiatietue, vaiheparametrien asetus ja muut toiminnot.
1. Ohjelman rakenne
![acdsb (1)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb534d9587236.jpg)
2. Käyttöliittymän materiaalinäyttö
![acdsb (2)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb6b626488123.jpg)
![acdsb (4)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb84270f77694.jpg)
![acdsb (3)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bb975b6581165.jpg)
![acdsb (5)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbaf20a513069.jpg)
3. Käyttöliittymän kehitysesimerkki
![acdsb (6)](https://ecdn6.globalso.com/upload/p/1355/source/2024-03/65f96bbc7a0f429134.jpg)
4.C51 ohjelmistosuunnittelu
Alustuskomentoohjelma, jonka insinööri voi kommunikoida ohjauskortin kanssa T5L-sarjaportin 2 avulla, on seuraava:
void app_init()
{
on_testaus = 0;
testiajon_aika = 0;
is_sec = 0;
jakso 1 = 0;
on_jakso1 = 0;
uart2_init(115200);
send_bytes("AT+INIT=0\r\n",koko("AT+INIT=0\r\n")-1);
sys_delay_ms(2500);
sys_pic(1);
send_bytes("AT+START\r\n",koko("AT+START\r\n")-1);
}
T5L älykkään näytön pääohjelma, joka on vuorovaikutuksessa ohjauskortin kanssa sementin koostumuksen havaitsemisen toteuttamiseksi, on seuraava:
void btn_click_handler()
{
#define BTN_VAL_ADDR 0x1000
u16 btn_val;
if(on_testing&&on_sec)
{
is_sec = 0;
test_run_time++;
btn_val = sprintf(commbuff,"%02u:%02u",(u16)(testin_ajoaika/60),(u16)(testin_ajoaika%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)
{
aloituspaino = *(kelluke*)(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)
{
nopeus_arvo = *(kelluke*)(uart2buf+2);
disp_val += (nopeus_arvo*2.45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
}else if(uart2buf[0]==0x04)
{
kokonaismäärä = uart2buf[1]*256+uart2buf[2];
}else if(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
jos(on_jakso1)
{
on_jakso1 = 0;
t_sample();
if(on_testing&&is_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
if(is_btn_scan==0)
palata;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
if(btn_val==0)
palata;
if(btn_val
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Katso lisätietoja lähdekoodista.
Postitusaika: 02.12.2023