void main() { cli(); // disable INT. during peripheral setting Peripheral_Init(); SCH_Init_T2_1ms(); //初始化systick为1ms sei(); // enable INT. SCH_Add_Task(UART0_TX,0,10); SCH_Start(); // TODO: add your main code here while(1) { SCH_Dispatch_Tasks(); } }
int main() { int i; msg_t msg; func_t func; /** 外设初始化开始 **/ Peripheral_Init(); /** 外设初始化结束 **/ charQueueInit(&g_com1TxQue); //charQueueInit(&g_com2TxQue); MFPACK_FIFO_CLEAN("清空指纹传感器缓冲区"); MBTACK_FIFO_CLEAN("清空蓝牙接收缓冲区"); actionQueueInit(&g_actionQueue, &(g_timer[1]), CACT_TOUT, CACT_OVER); actionQueueInit(&g_promptQueue, &(g_timer[2]), CPMT_TOUT, CPMT_OVER); actionQueueInit(&g_blinkQueue, &(g_timer[3]), CBLK_TOUT, CBLK_OVER); adcSample_Init(&g_adcData, &(g_timer[4]), CADC_TOUT, TIMER_300MS); for(i = 0; i < TIMER_NUM; i++) { ClrTimer(&g_timer[i]); } //SetTimer(&g_timer[0], TIMER_1SEC, CMSG_TMR); msgq_init(&g_msgq); #if 1 msg.msgType = CMSG_PWON; msgq_in(&g_msgq, &msg); fstack_init(&g_fstack); func.func = f_idle; fstack_push(&g_fstack, &func); #endif AWU_Config(); //enableInterrupts(); IRQ_enable(); //MIRQ_disable(); /* Infinite loop */ while(1) { //IWDG_ReloadCounter(); //Refresh_WWDG_Window(); //Test_WWDGReset(); keyscan(); //vop_busy(); //fingerCheck(); PeripheralInput_Check(); DAEMON_USART1_Send(&g_com1TxQue); /** output to fingerprint **/ DAEMON_USART3_Send(&g_com3TxQue); /** output to bluetooth **/ //DAEMON_USART1_Recive(&g_comRevBuf); actionDoing(&g_actionQueue); actionDoing(&g_promptQueue); actionDoing(&g_blinkQueue); if(msgq_out_irq(&g_msgq, &msg) == FALSE) { /** 有消息吗? **/ continue; } if(sysProcess(&msg) == TRUE) { /** 是系统消息吗? **/ continue; } if(fstack_top(&g_fstack, &func) == FALSE) { /** 当前处于工作状态吗? **/ /** something wrong happend, Power Down or recover it **/ fstack_init(&g_fstack); func.func = f_idle; fstack_push(&g_fstack, &func); g_tick = 0; SetTimer_irq(&g_timer[0], TIMER_1SEC, CMSG_TMR); continue; } func.func((unsigned *)&msg); } }