/**************************************************************************** * * NAME: vInitHardware * * DESCRIPTION: * * RETURNS: * ****************************************************************************/ static void vInitHardware(int f_warm_start) { // インタラクティブモードの初期化 Interactive_vInit(); // LED's vPortAsOutput(PORT_KIT_LED1); vPortAsOutput(PORT_KIT_LED2); vPortAsOutput(PORT_KIT_LED3); vPortAsOutput(PORT_KIT_LED4); vPortSetHi(PORT_KIT_LED1); vPortSetHi(PORT_KIT_LED2); vPortSetHi(PORT_KIT_LED3); vPortSetHi(PORT_KIT_LED4); if (!f_warm_start && bPortRead(PORT_CONF2)) { sAppData.bConfigMode = TRUE; } // activate tick timers memset(&sTimerApp, 0, sizeof(sTimerApp)); sTimerApp.u8Device = E_AHI_DEVICE_TIMER0; sTimerApp.u16Hz = 1; sTimerApp.u8PreScale = 10; vTimerConfig(&sTimerApp); vTimerStart(&sTimerApp); }
void UploadService() { vTimerStart(UPLOAD_TIMEOUT); quit = 0; resetVar(); while(!quit) { if(vTimerTimeOut()) break; //超时跳出 if(!u8UARTReceive(&ch)) continue; //没有收到数据 if(!parseChar(ch)) continue; //不是协议包 pkt = readPacket(&pktLen); //读出一条数据 if(parseUpload(pkt,pktLen)) //正确的升级数据 { //只要收到正确的升级数据就复位计数器 vTimerStart(UPLOAD_TIMEOUT); } } }
PRIVATE void vInitHardware(int f_warm_start) { // LED's vPortAsOutput(PORT_KIT_LED1); vPortAsOutput(PORT_KIT_LED2); vPortAsOutput(PORT_KIT_LED3); vPortAsOutput(PORT_KIT_LED4); vPortSetHi(PORT_KIT_LED1); vPortSetHi(PORT_KIT_LED2); vPortSetHi(PORT_KIT_LED3); vPortSetHi(PORT_KIT_LED4); // activate tick timers memset(&sTimerApp, 0, sizeof(sTimerApp)); sTimerApp.u8Device = E_AHI_DEVICE_TIMER0; sTimerApp.u16Hz = 1; sTimerApp.u8PreScale = 10; vTimerConfig(&sTimerApp); vTimerStart(&sTimerApp); }