[Iepen boarne] Cement Multi-bedrach mjitynstrumint

——Fan DWIN Developer Forum

De priiswinnende iepenboarne-saak oanrikkemandearre troch it DWIN-foarum kin brûkt wurde yn 'e bousektor om ynhâld fan semintkomponinten te detektearjen - in mjitynstrumint mei meardere bedraggen fan semint basearre op T5L smart skerm.Yngenieurs brûke it T5L-tûke skerm om de elektroanyske gewichtdeteksjemodule, temperatuermjittingsmodule, ferwaarmingsmodule, fochtsensor en mingmodule te kontrolearjen om de deteksjefunksje fan fêste oplossing en ynhâld fan floeibere semintkomponint te realisearjen, en realtime werjaan fan taryf te stypjen, temperatuer ynstelling, skiednis record, Stage parameter ynstelling en oare funksjes.

1. Program Struktuer

acdsb (1)

2.UI Materiaal Display

acdsb (2)
acdsb (4)
acdsb (3)
acdsb (5)

3.UI Untjouwing Foarbyld

acdsb (6)

4.C51 software design

It inisjalisaasjekommandoprogramma foar de yngenieur om te kommunisearjen mei it kontrôleboerd mei de T5L seriële poarte 2 is as folget:

void app_init()

{

is_testing = 0;

test_run_time = 0;

is_sek = 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",sizeof("AT+START\r\n")-1);

}

It haadprogramma fan it T5L yntelliginte skerm dat ynteraksje mei it kontrôleboerd om de funksje fan deteksje fan semintkomposysje te realisearjen is as folget:

void btn_click_handler()

{

#define BTN_VAL_ADDR 0x1000

u16 btn_val;

if(is_testen&&is_sek)

{

is_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);

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)

{

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

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

{

is_en_tmp = uart2buf[2];

}

uart2rxsta = 0;

}

}

as (is_perioade1)

{

is_period1 = 0;

t_sample();

if(is_testen&&is_en_tmp)

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

}

if(is_btn_scan==0)

weromkomme;

is_btn_scan = 0;

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

if(btn_val==0)

weromkomme;

if(btn_val<=0x10)

start_win_btn_click_handler(btn_val);

 

btn_val = 0;

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

}

 

Ferwize nei de boarnekoade foar mear.


Post tiid: Dec-02-2023