找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

單片機(jī)定時(shí)器中斷會(huì)被下一個(gè)定時(shí)器中斷嗎?

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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ù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:724465 發(fā)表于 2024-7-21 20:29 | 顯示全部樓層
不會(huì),因?yàn)橹袛喾⻊?wù)子程序處理時(shí)間不在定時(shí)器計(jì)數(shù)時(shí)間內(nèi)
回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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