作者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