找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機(jī)中斷優(yōu)先級問題

查看數(shù): 2305 | 評論數(shù): 8 | 收藏 0
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2023-11-9 19:26

正文摘要:

我現(xiàn)在的想法是,    1、同為低優(yōu)先級或者高優(yōu)先級時,遵循 外部中斷0->定時器/計數(shù)器T0->外部中斷1->定時器/計數(shù)器T1->串口中斷(優(yōu)先級由高到低),的自然優(yōu)先級,那么在同級優(yōu)先級(同為高優(yōu)先 ...

回復(fù)

ID:1091094 發(fā)表于 2023-11-18 11:35
鵜鶘 發(fā)表于 2023-11-10 16:44
你【現(xiàn)在的想法】是不對的,你的【實驗現(xiàn)象】是對的,這個實驗現(xiàn)象就是51系列單片機(jī)的中斷規(guī)則,而不是你【 ...

你說的這個,我好像也碰到過這種情況:
前幾天看到一哥們貼出了他的一個程序,是個電子表程序(作者聲稱非常精確)里面就有這類錯誤,他的中斷程序中有JMP類指令,目標(biāo)地址下面肯定會碰到RET指令,這就不對了,之后的同級中斷肯定永遠(yuǎn)也不會被執(zhí)行的。
、、、、、、、、、、、、、、、、
不過你說的JMP類指令  和RET指令是什么。

、、、、、、、、、、、、、、
我碰到的情況是定時器中斷,而且時間很快,然后外部中斷就不起作用了,就是無論等多久都不會執(zhí)行外部中斷的服務(wù)程序。   后來設(shè)置了中斷的優(yōu)先級后就可以了。
ID:879348 發(fā)表于 2023-11-16 10:50
不存在打斷的問題,最多就是競爭,同時標(biāo)記中斷,誰先誰后的問題
ID:401564 發(fā)表于 2023-11-15 22:56
中斷優(yōu)先級和查詢順序是兩個不同的東西,在STC的單片機(jī)數(shù)據(jù)手冊中有描述的,認(rèn)真看一下就能理解了
ID:1097455 發(fā)表于 2023-11-15 08:41
高中斷可以把低中斷打斷,結(jié)束高中斷在執(zhí)行較低中端
ID:647261 發(fā)表于 2023-11-14 16:44
所謂的“自然優(yōu)先級”其實只是查詢順序,不存在高低之分
優(yōu)先級只有兩級——高優(yōu)先級和低優(yōu)先級
同級優(yōu)先級的中斷,進(jìn)入了一個中斷,就不能被其他中斷打斷
低優(yōu)先級的中斷執(zhí)行中,可以被高優(yōu)先級的中斷打斷
ID:624769 發(fā)表于 2023-11-11 16:55
糾正你一個理解錯誤, 同為低優(yōu)先級,或者同為高優(yōu)先級, 外部中斷0 是不能打斷 外部中斷1的。
所謂的自然優(yōu)先級,是STC的說法,正確的說法應(yīng)當(dāng)是,中斷檢索順序,即:當(dāng)發(fā)生了中斷,單片機(jī)先看外部中斷0是不是有中斷請求,有則執(zhí)行,沒有的話則看看定時器中斷0有沒有中斷請求,以此類推。只有多個中斷都排隊等待執(zhí)行時,這個“自然優(yōu)先級”才有意義。并不是說你在執(zhí)行同等級中斷時能被“自然優(yōu)先級”高于你的中斷打斷。
ID:397054 發(fā)表于 2023-11-10 16:44
你【現(xiàn)在的想法】是不對的,你的【實驗現(xiàn)象】是對的,這個實驗現(xiàn)象就是51系列單片機(jī)的中斷規(guī)則,而不是你【現(xiàn)在的想法】,即:“1、,,,,那么在同級優(yōu)先級,,,低優(yōu)先級可以被高優(yōu)先級打斷;”——是不對的,不能被打斷,這是明確的,沒有異議,你的試驗也證明了這點。

我有一本書,這一內(nèi)容說的很明了:51系列單片機(jī)的6個中斷源(51子系列只有5個,沒有定時計數(shù)器2)只分為兩個優(yōu)先級,由用戶自由分配,低優(yōu)先級可以被高優(yōu)先級中斷,反之不能,同級中斷也不能互相中斷;你所說的“自然優(yōu)先級”那不是《優(yōu)先級》,而是指在同時申請中斷時被CPU響應(yīng)的次序,當(dāng)CPU正在執(zhí)行中斷程序時如果有同級別的中斷申請,CPU不會立即響應(yīng)要等處理完之后才會,這就是IRET指令的必要性,這個指令不同于RET。前幾天看到一哥們貼出了他的一個程序,是個電子表程序(作者聲稱非常精確)里面就有這類錯誤,他的中斷程序中有JMP類指令,目標(biāo)地址下面肯定會碰到RET指令,這就不對了,之后的同級中斷肯定永遠(yuǎn)也不會被執(zhí)行的。所以你的原來的【現(xiàn)在的想法】是不對的,應(yīng)該按照你的【實驗現(xiàn)象】去做,那才是正確的規(guī)則。
ID:123289 發(fā)表于 2023-11-10 15:39
無法判斷出你所講的【A打斷B】或【A不能打斷B】的真?zhèn)巍?br /> 比如:你說【A打斷B】了,是憑什么認(rèn)定的?
提供一下你認(rèn)定的【打斷、未打斷】判定方法、思路。比如,在中斷服務(wù)程序中亮不同色的燈……。
亦或給出中斷程序。
所以,無法與你討論。

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

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

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