——DWIN Garatzaileen Forotik
DWIN foroak gomendatutako kode irekiko kasu saritua eraikuntzaren industrian erabil daiteke zementuzko osagaien edukia detektatzeko - T5L pantaila adimendunean oinarritutako zementuzko kantitate anitzeko neurtzeko tresna.Ingeniariek T5L pantaila adimenduna erabiltzen dute pisua hautemateko modulu elektronikoa, tenperatura neurtzeko modulua, berokuntza modulua, hezetasun sentsorea eta nahasketa modulua kontrolatzeko, soluzio solidoaren eta zementu likidoaren osagaien edukiaren detektatzeko funtzioa eta tasa denbora errealean bistaratzeko. tenperatura ezarpena, historia erregistroa, etapa parametroen ezarpena eta beste funtzio batzuk.
1. Programaren Egitura
2.UI Materialaren pantaila
3.UI garapenaren adibidea
4.C51 softwarearen diseinua
T5L serieko ataka erabiliz ingeniariak kontrol-taularekin komunikatzeko hasierako komando-programa hau da:
void app_init()
{
da_proba = 0;
proba_exekutatu_denbora = 0;
is_sec = 0;
periodo1 = 0;
da_periodo1 = 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+HASI\r\n",sizeof("AT+HASI\r\n")-1);
}
T5L pantaila adimendunaren programa nagusia kontrol-taularekin elkarreragiten duen zementuaren konposizioa detektatzeko funtzioa konturatzeko honakoa da:
void btn_click_handler()
{
#defini BTN_VAL_ADDR 0x1000
u16 btn_val;
if(probatzen ari da&&sec)
{
is_sec = 0;
proba_exekutatu_denbora++;
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 += (abiadura_balioa*2.45f);
sys_write_vp(0x1180, (u8*)&disp_val, 2);
}else if(uart2buf[0]==0x04)
{
guztira_zenbakia = uart2buf[1]*256+uart2buf[2];
}else if(uart2buf[0]==0x05)
{
is_en_tmp = uart2buf[2];
}
uart2rxsta = 0;
}
}
bada (perioda_1)
{
da_periodo1 = 0;
t_lagina();
if(probatzen ari da&&es_en_tmp)
sys_write_vp(0x1170,(u8*)&tmp,2);
}
if(is_btn_scan==0)
itzuli;
is_btn_scan = 0;
sys_read_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
if(btn_val==0)
itzuli;
if(btn_val<=0x10)
start_win_btn_click_handler(btn_val);
btn_val = 0;
sys_write_vp(BTN_VAL_ADDR,(u8*)&btn_val,1);
}
Ikusi iturburu kodea gehiagorako.
Argitalpenaren ordua: 2023-02-23