int main() { __disable_interrupt(); //InitQueue(&uart_rx_cirqueue); //InitQueue(&uart_tx_cirqueue); CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1); //GPIO_Init(GPIOD, GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_SLOW); GPIO_INIT();//led GPIO_Init(GPIOD, GPIO_PIN_2,GPIO_MODE_OUT_PP_HIGH_FAST);//开启U10的控制引脚 pir_RI_io_init();//pir中断 T4_Init(); //Uart_Init(); CommInit(); /*AWU configuration --------------------------------------------*/ AWU_Config(); OSInit(); CommBufInit();//创建信号量的操作不能再OSInit();之前,也就是不能在OS_InitEventList();之前 OSTaskCreate( task0, (void *)OS_TASK_0_STK_SIZE, &Task0Stack[OS_TASK_0_STK_SIZE-1], OS_TASK_0_PRIO ); OSTaskCreate( task1, (void *)OS_TASK_1_STK_SIZE, &Task1Stack[OS_TASK_1_STK_SIZE-1], OS_TASK_1_PRIO ); //OSTaskCreate( task2, (void *)OS_TASK_2_STK_SIZE, &Task2Stack[OS_TASK_2_STK_SIZE-1], OS_TASK_2_PRIO ); OSStart(); return 0; }
int main( void ){ uint16_t i; // Reset GPIO port D to a default state GPIO_DeInit(GPIOD); /* Clock configuration -----------------------------------------*/ //CLK_Config(); /*AWU configuration --------------------------------------------*/ AWU_Config(); GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST); // The main loop while( 1 ){ GPIO_WriteLow(GPIOD, GPIO_PIN_0); for(i=0;i<10000;i++) // A delay loop { nop(); } GPIO_WriteHigh(GPIOD, GPIO_PIN_0); halt();/* Program halted */ } }
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); } }