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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1753|回復: 4
收起左側

單片機定時器中斷程序求助

[復制鏈接]
ID:543966 發表于 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);
}


回復

使用道具 舉報

ID:687694 發表于 2020-3-5 22:57 | 顯示全部樓層
void mode4()
{        
        t = 1;
        restore = 0;
        t1 = 25000;
        t2 = 25000;
        t3 = 25000;
        TR0 = 1
        while(1);
}
就在這個函數中的while(1);中無限循環了。。。。
回復

使用道具 舉報

ID:462827 發表于 2020-3-5 23:27 | 顯示全部樓層
你竟然在中斷中調用一個帶無限循環的子函數
回復

使用道具 舉報

ID:487821 發表于 2020-3-6 01:18 | 顯示全部樓層
這樣會一中斷又跑這個函數,函數里又在whiel(1),所以就在函數與中斷之間循環,其實是有產生中斷,在你沒感覺
回復

使用道具 舉報

ID:213173 發表于 2020-3-6 09:44 | 顯示全部樓層
使用定時器中斷服務函數的一般要求:函數中任務盡可能簡短,俗稱打一槍就跑,不可久留。更不能接近或大于中斷周期。不是必須不要在中斷函數中執行具體任務,只要設置個標志,具體任務放在main函數主循環中完成。更不能調用帶有阻滯型延時函數和while(1)死循環的子函數。在中斷任務沒有完成前CPU不會響應再入中斷請求。除非有更高優先級中斷才能打斷此中斷。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表