標(biāo)題:
51單片機(jī)定時(shí)器中斷和外部中斷同時(shí)使用為什么一定要設(shè)置優(yōu)先級(jí)
[打印本頁]
作者:
3038838599
時(shí)間:
2023-9-11 09:03
標(biāo)題:
51單片機(jī)定時(shí)器中斷和外部中斷同時(shí)使用為什么一定要設(shè)置優(yōu)先級(jí)
我在使用普中51單片機(jī)開發(fā)板,設(shè)置了定時(shí)器10us執(zhí)行一次PWM,還有外部中斷0的程序,不設(shè)置外部中斷為高優(yōu)先級(jí)的時(shí)候,
程序是按鍵沒有反應(yīng)的。 加上優(yōu)先級(jí)就可以了按鍵控制三個(gè)擋位了,為什么?
不應(yīng)該是即使沒有優(yōu)先級(jí)也可以執(zhí)行外部中斷的嗎?
作者:
yzwzfyz
時(shí)間:
2023-9-11 10:39
學(xué)會(huì)閱讀手冊。
當(dāng)你不設(shè)置時(shí),CPU默認(rèn)一套優(yōu)先級(jí)。
當(dāng)你設(shè)置時(shí),按你設(shè)置的辦。
當(dāng)默認(rèn)優(yōu)先級(jí)滿足你的需求,就不需發(fā)設(shè)置了。
作者:
wulin
時(shí)間:
2023-9-11 12:57
你這不是中斷優(yōu)先級(jí)的問題,是中斷函數(shù)不合理的問題。你首先想想10us時(shí)間能執(zhí)行幾行代碼。
作者:
po99887713
時(shí)間:
2023-9-11 15:36
蛤?51什么時(shí)候需要設(shè)置中斷的優(yōu)先級(jí)了,不是都是默認(rèn)的優(yōu)先級(jí)嘛?
作者:
sttt300
時(shí)間:
2023-9-11 15:52
51單片機(jī)的中斷規(guī)則:
不設(shè)置優(yōu)先級(jí)時(shí),中斷源都是一個(gè)優(yōu)先級(jí),規(guī)則如下:
1.哪個(gè)中斷先到,就先執(zhí)行哪個(gè)中斷。
2.中斷執(zhí)行過程中,不能被其他中斷打斷。
3.多個(gè)中斷同時(shí)到來時(shí),按查詢號(hào)順序執(zhí)行。
查詢號(hào)順序:外部中斷0(P3.2腳)-> 定時(shí)器 0 -> 外部中斷1(P3.3腳) -> 定時(shí)器 1 -> 串口
假如按鍵是P3.2腳,定時(shí)器10us
要實(shí)現(xiàn)按鍵功能,就必須在10us的間隙中,完成按鍵下降沿的觸發(fā)動(dòng)作,才能進(jìn)入外部中斷
假如按鍵是P3.3腳,定時(shí)器是T0的話,難度就更大了,這個(gè)觸發(fā)動(dòng)作還不能剛好和10us時(shí)間同時(shí)產(chǎn)生
當(dāng)設(shè)置了優(yōu)先級(jí)后,中斷就分成了高優(yōu)先級(jí)和低優(yōu)先級(jí)兩種了,這時(shí),規(guī)則多了一樣:
低優(yōu)先級(jí)的中斷執(zhí)行過程中,高優(yōu)先級(jí)中斷產(chǎn)生,可以打斷低優(yōu)先級(jí)中斷,實(shí)現(xiàn)中斷嵌套。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1