欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機定時器中斷程序求助 [打印本頁]

作者: baibai310    時間: 2020-3-5 20:06
標題: 單片機定時器中斷程序求助
為什么在定時器的中斷內調用一次函數之后,不能再進入定時器中斷了(之前的進入都沒問題,調用函數后就不能進入了)?調試發現程序一直在while(1)中不動,TH0、TL0已經賦值了。
中斷內的調用函數部分:
if(t > (t1 + 10000))
{
        mode4();
}
調用的函數:
void mode4()
{        
        t = 1;
        restore = 0;
        t1 = 25000;
        t2 = 25000;
        t3 = 25000;
        TR0 = 1
        while(1);
}



作者: lovexulu    時間: 2020-3-5 22:57
void mode4()
{        
        t = 1;
        restore = 0;
        t1 = 25000;
        t2 = 25000;
        t3 = 25000;
        TR0 = 1
        while(1);
}
就在這個函數中的while(1);中無限循環了。。。。
作者: hantu    時間: 2020-3-5 23:27
你竟然在中斷中調用一個帶無限循環的子函數
作者: faguiq    時間: 2020-3-6 01:18
這樣會一中斷又跑這個函數,函數里又在whiel(1),所以就在函數與中斷之間循環,其實是有產生中斷,在你沒感覺
作者: wulin    時間: 2020-3-6 09:44
使用定時器中斷服務函數的一般要求:函數中任務盡可能簡短,俗稱打一槍就跑,不可久留。更不能接近或大于中斷周期。不是必須不要在中斷函數中執行具體任務,只要設置個標志,具體任務放在main函數主循環中完成。更不能調用帶有阻滯型延時函數和while(1)死循環的子函數。在中斷任務沒有完成前CPU不會響應再入中斷請求。除非有更高優先級中斷才能打斷此中斷。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1