[問題] 8051 中斷問題

看板ASM (組合語言)作者 (Fang)時間15年前 (2009/07/24 01:10), 編輯推噓4(4016)
留言20則, 3人參與, 最新討論串1/2 (看更多)
我現在要用兩個中斷 , int0和timer0 , int0優先 假如已經進入了timer0正在數 在timer0其間 , 使int0中斷 int0後 , 理論上會跳回timer0 有辦法執行完int0後 , 不跳回timer0 ,跳到我指定的地方去嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.71.4.212

07/24 09:44, , 1F
自行把想去的位址push 到stack裡面,再執行RETI。不過原
07/24 09:44, 1F

07/24 09:46, , 2F
本被中斷的timer0 程式位址應該還在stack裡面,要自己處
07/24 09:46, 2F

07/24 09:47, , 3F
理掉。我沒這樣寫過,若上述方法有錯請高手予以告知,謝!
07/24 09:47, 3F

07/24 13:39, , 4F
中斷優先權要設~然後就是Timer再數的時候不算中斷~是時
07/24 13:39, 4F

07/24 13:40, , 5F
間數"到"了才中斷~int0優先的意思是~若同時發生中斷,
07/24 13:40, 5F

07/24 13:41, , 6F
int0先執行完在執行timer0~所以是沒有影響的~~
07/24 13:41, 6F

07/24 13:42, , 7F
看你是哪個中斷為主~
07/24 13:42, 7F

07/24 15:03, , 8F
我覺得S大說的不對,請參考INTEL的8051 manual。
07/24 15:03, 8F

07/24 15:04, , 9F
A low-priority interrupt can be interrupted by a high
07/24 15:04, 9F

07/24 15:04, , 10F
prioriy interrupt, but not by another low priority
07/24 15:04, 10F

07/24 15:04, , 11F
interrupt.
07/24 15:04, 11F

07/24 16:29, , 12F
樓上說的應該是~~當兩個中斷發生時,低優先權的會被高
07/24 16:29, 12F

07/24 16:31, , 13F
優先權的中斷,但不會被其他低優先權的斷(可能我表達
07/24 16:31, 13F

07/24 16:32, , 14F
的不好)~~
07/24 16:32, 14F

07/24 16:36, , 15F
XD~~我理解錯方向了~~A大的方法沒錯~因為我還碰過這種
07/24 16:36, 15F

07/24 16:37, , 16F
case~還學不到家~
07/24 16:37, 16F

07/24 20:47, , 17F
感謝A大和s大,我找時間試試看,感恩
07/24 20:47, 17F

07/24 21:53, , 18F
執行中斷後,會存啥東西到STECK
07/24 21:53, 18F

07/24 22:39, , 19F
會將要return的位址存到stack
07/24 22:39, 19F

07/25 20:46, , 20F
恩恩 謝謝~
07/25 20:46, 20F
文章代碼(AID): #1AQ9bvEo (ASM)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
文章代碼(AID): #1AQ9bvEo (ASM)