作者peterweli (Fang)
看板ASM
標題[問題] 8051 中斷問題
時間Fri Jul 24 01:10:16 2009
我現在要用兩個中斷 , int0和timer0 , int0優先
假如已經進入了timer0正在數
在timer0其間 , 使int0中斷
int0後 , 理論上會跳回timer0
有辦法執行完int0後 , 不跳回timer0 ,跳到我指定的地方去嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.71.4.212
1F:推 Aquatics:自行把想去的位址push 到stack裡面,再執行RETI。不過原 07/24 09:44
2F:→ Aquatics:本被中斷的timer0 程式位址應該還在stack裡面,要自己處 07/24 09:46
3F:→ Aquatics:理掉。我沒這樣寫過,若上述方法有錯請高手予以告知,謝! 07/24 09:47
4F:推 squall0734:中斷優先權要設~然後就是Timer再數的時候不算中斷~是時 07/24 13:39
5F:→ squall0734:間數"到"了才中斷~int0優先的意思是~若同時發生中斷, 07/24 13:40
6F:→ squall0734:int0先執行完在執行timer0~所以是沒有影響的~~ 07/24 13:41
7F:→ squall0734:看你是哪個中斷為主~ 07/24 13:42
8F:推 Aquatics:我覺得S大說的不對,請參考INTEL的8051 manual。 07/24 15:03
9F:→ Aquatics:A low-priority interrupt can be interrupted by a high 07/24 15:04
10F:→ Aquatics:prioriy interrupt, but not by another low priority 07/24 15:04
11F:→ Aquatics:interrupt. 07/24 15:04
12F:推 squall0734:樓上說的應該是~~當兩個中斷發生時,低優先權的會被高 07/24 16:29
13F:→ squall0734:優先權的中斷,但不會被其他低優先權的斷(可能我表達 07/24 16:31
14F:→ squall0734:的不好)~~ 07/24 16:32
15F:→ squall0734:XD~~我理解錯方向了~~A大的方法沒錯~因為我還碰過這種 07/24 16:36
16F:→ squall0734:case~還學不到家~ 07/24 16:37
17F:→ peterweli:感謝A大和s大,我找時間試試看,感恩 07/24 20:47
18F:→ peterweli:執行中斷後,會存啥東西到STECK 07/24 21:53
19F:→ Aquatics:會將要return的位址存到stack 07/24 22:39
20F:→ peterweli:恩恩 謝謝~ 07/25 20:46