由于刚接触mc9s12dg128单片机,用的codewarrior4.6编程的,为了试验中断向量表问题,现编了几句小程序
主程序是:
#include <hidef.h> /* common defines and macros */
#include <mc9s12dg128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
void main(void) {
DisableInterrupts;
DDRB=0xFF;
PORTB=0x00;
EnableInterrupts;
for(;;) {} /* wait forever */
}
#pragma CODE_SEG NON_BANKED
void interrupt 6 DIRQISR(void)
{
PORTB=0x0F;
}
#pragma CODE_SEG DEFAULT
.prm文件最后连接是:
VECTOR 0 _Startup
VECTOR 6 DIRQISR
编译后发现不进入中断,请教各位该如何解决?不胜感谢!
1. 检查一下此中断的控制寄存器设置;
2. 检查一下中断号对应的中断矢量地址是否正确。
你写的这段程序很有问题,我感觉啊。
如果的interrupt 后面加中断号,你在prm文件中应该就不用在写vector 6了吧。如果你中断程序是interrupt void DIRQISR(void),此时你在prm文件末尾加上vector address $fffd(随便写的地址,你应该把你的实际中断地址写在这个地方) DIRQISR
这样就可以了应该
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |