Board logo

标题: 讨论:(12DG128) 开外部中断(IRQ)的设置问题? [打印本页]

作者: feng200808    时间: 2007-10-30 18:09     标题: 讨论:(12DG128) 开外部中断(IRQ)的设置问题?

MC9S12DG128在INTCR寄存器的默认设置下,只要开全局中断即EnableInterrupts的话,外部中断IRQ是不是就已经打开了
如果是的话,在使用别的中断(例如定时计数器中断)而不使用外部中断IRQ的情况下,只要打开全局中断即EnableInterrupts,是不是不可避免的打开了外部中断(IRQ)?
作者: fsystem    时间: 2007-10-31 08:20

不是 打开IRQ还要把INTCR寄存器中的IRQEN写一才行!
作者: strongchen    时间: 2007-10-31 10:52

IRQEN的上电复位缺省值为1,即IRQ是开启的。
作者: feng200808    时间: 2007-10-31 17:48

按照strongchen的意思,在缺省情况下,只要开中断(EnableInterrupts),IRQ就不可避免的打开,这样就会造成一些不便了
作者: strongchen    时间: 2007-11-1 09:55

如果不需要IRQ,你可以在开中断前将IRQEN位清零就可以了。
作者: BHLT123    时间: 2007-11-1 14:29

请教一下,我用DisableInterrupts;关闭全局中断,在调试时发现,执行这个语句后, CCR 寄存器的 I 位并没有被清0 ;然后我把这句话用 asm cli;替代,结果 I 位就被清0 了。不懂两者之间有什么区别。。。-_-!!!
作者: happysuxin    时间: 2007-11-1 20:56

#define EnableInterrupts {__asm CLI;}
#define DisableInterrupts {__asm SEI;}

这是在hidef.h文件中定义的两个宏
作者: strongchen    时间: 2007-11-2 11:01

执行DisableInterrupts和asm cli的效果应该是一样的。
作者: fjczd    时间: 2009-1-5 11:32

QUOTE:
以下是引用strongchen在2007-11-2 11:01:00的发言:
执行DisableInterrupts和asm cli的效果应该是一样的。






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0