找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2194|回復(fù): 19
收起左側(cè)

單片機定時器中斷會被下一個定時器中斷嗎?

  [復(fù)制鏈接]
ID:237471 發(fā)表于 2024-6-12 21:20 | 顯示全部樓層 |閱讀模式
1、定時器設(shè)為5毫秒
2、第一次定時器中斷,程序開始處理一些事務(wù)
3、由于事務(wù)繁多,或預(yù)估的5毫秒時間不夠處理完事務(wù),這時下一個定時器中斷時間到了
4、請問,本次中斷會被下一個中斷打斷么,還是會忽略到來的中斷繼續(xù)處理沒做完的事務(wù),一直到完成本次中斷
回復(fù)

使用道具 舉報

ID:624769 發(fā)表于 2024-6-12 22:27 | 顯示全部樓層
如果,你的定時器中斷周期是5ms, 而你中斷中需要處理的事件耗時需要超過5ms,那么,你這個設(shè)計是失敗的!
你根本出不了中斷,或者說,有出去這個動作,隨后又進去了,那么,你還要中斷程序干什么?直接寫在 while(1)里面就好了。
回復(fù)

使用道具 舉報

ID:1110945 發(fā)表于 2024-6-12 23:54 | 顯示全部樓層
定時間隔盡量設(shè)長一些,中斷內(nèi)的程序盡量少一些,
長時間才能處理完的任務(wù)要放在大循環(huán)中執(zhí)行。
“中斷函數(shù)重入”這種你不能預(yù)料的事情要杜絕。
一家之言。
回復(fù)

使用道具 舉報

ID:1109793 發(fā)表于 2024-6-13 07:10 | 顯示全部樓層
中斷可以被更高級的中斷,不能被平級或者自己再次中斷。把中斷里面的耗時的東西拿到主循環(huán)里面
回復(fù)

使用道具 舉報

ID:517951 發(fā)表于 2024-6-13 07:42 | 顯示全部樓層
中斷執(zhí)行程序要盡可能的短小精悍, 耗時過長的任務(wù)放在main主程序中執(zhí)行. 5ms的中斷程序還沒執(zhí)行完畢, 下一個5ms又來, 中斷程序不可以被自己打斷的.要等到執(zhí)行完畢以后才能再次進入5ms的中斷程序.中斷搶占是要被更高一級的中斷程序打斷.
回復(fù)

使用道具 舉報

ID:879348 發(fā)表于 2024-6-13 08:38 | 顯示全部樓層
不會,但是如果一直這樣繁忙,mian函數(shù)就無法運行了
回復(fù)

使用道具 舉報

ID:91150 發(fā)表于 2024-6-13 10:55 | 顯示全部樓層
5#說的 “中斷程序不可以被自己打斷的.要等到執(zhí)行完畢 (這個中斷程序) 以后才能再次進入...(這個)中斷程序.”   是正確的
回復(fù)

使用道具 舉報

ID:1124287 發(fā)表于 2024-6-13 11:31 | 顯示全部樓層
要看中斷的優(yōu)先級,高的會打斷低的,低的或同等不會
回復(fù)

使用道具 舉報

ID:1118092 發(fā)表于 2024-6-13 11:48 | 顯示全部樓層
如果中斷服務(wù)程序沒有屏蔽定時器中斷,并且下一個定時器中斷的優(yōu)先級不低于當前正在處理的中斷,那么下一個定時器中斷會打斷當前的中斷服務(wù)程序,并跳轉(zhuǎn)到新的中斷服務(wù)程序。這可能導(dǎo)致當前中斷服務(wù)程序中的數(shù)據(jù)或狀態(tài)被破壞,除非它已經(jīng)被適當?shù)乇Wo起來。
回復(fù)

使用道具 舉報

ID:1125103 發(fā)表于 2024-6-13 17:52 | 顯示全部樓層
必須手動清除這個中斷標志位以后,才會產(chǎn)生下一個中斷,你把事情處理完了,再清除標志位,這樣就不會出現(xiàn)沖突的情況了。
回復(fù)

使用道具 舉報

ID:1125104 發(fā)表于 2024-6-13 18:12 | 顯示全部樓層
When the processor is servicing the interrupt program, the first thing it does is to disable interrupts (this is automatic and it is done by the processor).

When you finish the interrupt and execute the "RETI" instruction (return from interrupt), this instruction automatically will return from interrupt and also it will reenable the interrupts (wich were disabled by the processor when it started executing this intrerrupt).
回復(fù)

使用道具 舉報

ID:57657 發(fā)表于 2024-6-14 17:57 | 顯示全部樓層
如果下一個定時器中斷比當前中斷優(yōu)先級高就能會被打斷,否則不能,具體見數(shù)據(jù)手冊。
回復(fù)

使用道具 舉報

ID:1034262 發(fā)表于 2024-6-15 11:26 | 顯示全部樓層
正在處理中斷時,不會被中斷打斷,會處理完成退出后,馬上又進來。
中斷處理時間長于中斷間隔時間,結(jié)果是,CPU被拖死,設(shè)計嚴重不當!一般要求所有中斷耗時最長時占CPU時間的一半以下為好。
回復(fù)

使用道具 舉報

ID:237471 發(fā)表于 2024-6-16 21:55 | 顯示全部樓層
經(jīng)過嚴格測試,定時器中斷不會被自己下一個中斷打斷,在本次中斷未運行完之前,會忽略正在發(fā)生的定時器中斷
回復(fù)

使用道具 舉報

ID:313517 發(fā)表于 2024-6-21 23:13 | 顯示全部樓層
會的,低優(yōu)先級的中斷會被高優(yōu)先級的中斷所打斷
回復(fù)

使用道具 舉報

ID:57657 發(fā)表于 2024-6-22 11:26 | 顯示全部樓層
定時器設(shè)定為5毫秒,定時器中斷內(nèi)的程序要求必須在5毫秒內(nèi)返回,否則會導(dǎo)致時間紊亂。
回復(fù)

使用道具 舉報

ID:1116447 發(fā)表于 2024-6-22 16:51 | 顯示全部樓層
中斷會不會被中斷,要看你自己的中斷優(yōu)先級,中斷等級低的會被中斷等級高的中斷
回復(fù)

使用道具 舉報

ID:724465 發(fā)表于 2024-7-21 20:29 | 顯示全部樓層
不會,因為中斷服務(wù)子程序處理時間不在定時器計數(shù)時間內(nèi)
回復(fù)

使用道具 舉報

ID:74687 發(fā)表于 2024-7-21 21:17 | 顯示全部樓層
中斷只改變Flag變量,不干具體的事,具體業(yè)務(wù)處理放進main里處理。
回復(fù)

使用道具 舉報

ID:1128908 發(fā)表于 2024-7-21 21:22 | 顯示全部樓層
中斷服務(wù)程序的執(zhí)行時間:一旦定時器中斷被觸發(fā),CPU會進入相應(yīng)的中斷服務(wù)程序。如果當前的中斷服務(wù)程序執(zhí)行時間過長,而下一個定時器中斷的時間已經(jīng)到達,那么CPU的行為將取決于中斷優(yōu)先級的設(shè)置。  如果當前中斷的優(yōu)先級高于下一個定時器中斷的優(yōu)先級,那么CPU將繼續(xù)執(zhí)行當前的中斷服務(wù)程序,直到其完成。下一個定時器中斷將被暫時掛起,等待當前中斷處理完畢后再進行處理。 如果下一個定時器中斷的優(yōu)先級高于或等于當前中斷的優(yōu)先級,那么CPU可能會立即響應(yīng)下一個定時器中斷,中斷當前的中斷服務(wù)程序,轉(zhuǎn)而執(zhí)行新的中斷服務(wù)程序。這可能會導(dǎo)致當前中斷服務(wù)程序中的部分工作被打斷,需要在新的中斷服務(wù)程序執(zhí)行完畢后,再由CPU決定是否繼續(xù)執(zhí)行之前被打斷的中斷服務(wù)程序。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表