本帖最后由 chao超 于 2018-12-12 13:46 編輯
//外部中斷0服務程序
void EXTI0_IRQHandler(void)
{
OS_ERR err;
u8 i;
// CPU_SR_ALLOC();
// OS_CRITICAL_ENTER(); //進入臨界區
OSIntEnter();
delay_ms(200); //消抖
OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_PERIODIC,&err); //延時1s 個人認為應該不會任務切換覺得是中斷優先級太高
OSSemPend(&SYNC_SEM,0,OS_OPT_PEND_BLOCKING,0,&err); //請求信號量 還有就是中斷盡量不要使用請求信號量會引起堵塞能不能解釋一下
if(PF0==0)
{
printf("1111");
OSSemPost(&SYNC_SEM,OS_OPT_POST_1,&err);//發送信號量
}
EXTI_ClearITPendingBit(EXTI_Line0); //清除LINE0上的中斷標志位
// OS_CRITICAL_EXIT(); //退出臨界區
OSIntExit(); //退出中斷
希望有大神解決問題
|