讨论:(12DG128) 开外部中断(IRQ)的设置问题?
- UID
- 155629
- 性别
- 男
|
讨论:(12DG128) 开外部中断(IRQ)的设置问题?
MC9S12DG128在INTCR寄存器的默认设置下,只要开全局中断即EnableInterrupts的话,外部中断IRQ是不是就已经打开了
如果是的话,在使用别的中断(例如定时计数器中断)而不使用外部中断IRQ的情况下,只要打开全局中断即EnableInterrupts,是不是不可避免的打开了外部中断(IRQ)? |
|
|
|
|
|
- UID
- 173801
- 性别
- 男
|
不是 打开IRQ还要把INTCR寄存器中的IRQEN写一才行! |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
IRQEN的上电复位缺省值为1,即IRQ是开启的。 |
|
|
|
|
|
- UID
- 155629
- 性别
- 男
|
按照strongchen的意思,在缺省情况下,只要开中断(EnableInterrupts),IRQ就不可避免的打开,这样就会造成一些不便了 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
如果不需要IRQ,你可以在开中断前将IRQEN位清零就可以了。 |
|
|
|
|
|
- UID
- 344045
- 性别
- 男
|
请教一下,我用DisableInterrupts;关闭全局中断,在调试时发现,执行这个语句后, CCR 寄存器的 I 位并没有被清0 ;然后我把这句话用 asm cli;替代,结果 I 位就被清0 了。不懂两者之间有什么区别。。。-_-!!! |
|
|
|
|
|
- UID
- 130520
- 性别
- 男
|
#define EnableInterrupts {__asm CLI;}
#define DisableInterrupts {__asm SEI;}
这是在hidef.h文件中定义的两个宏 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
执行DisableInterrupts和asm cli的效果应该是一样的。 |
|
|
|
|
|
- UID
- 529491
- 性别
- 男
|
以下是引用strongchen在2007-11-2 11:01:00的发言: 执行DisableInterrupts和asm cli的效果应该是一样的。 |
|
|
|
|
|