Board logo

标题: MC9S12XEP的中断处理程序 [打印本页]

作者: bensonbin    时间: 2008-7-8 14:34     标题: MC9S12XEP的中断处理程序

各位大哥:我在练习MC9S12XEP芯片,但是我在做中断程序的时候,始终不能正确的运行到中断处理程序,一中断就跑飞了,好像。那位大哥给指点一下阿。谢谢啦!附上程序:

void main(void) {
/* put your own code here */
int i=1000;
IVBR = 0xff; /* interrupt vector base address at $ff00 */
S12X_SetInterruptPriority(0x47,RQST + 0x07);

DDRA=0xFF; //选择输入输出方向
DDRP=0x00;
PIEP=0xff; //选择打开PP0中断
PIFP=0x00; //清中断标志
SetupXGATE();
EnableInterrupts;

for(;;) {
PORTA_PA3=1;
for(i=20000;i>=0;i--){ }
PORTA_PA3=0;
for(i=20000;i>=0;i--){ }
} /* wait forever */
/* please make sure that you never leave this function */
}
//# pragma CODE_SEG DEFAULT

#pragma NO_FRAME
#pragma NO_ENTRY
#pragma NO_EXIT

#pragma CODE_SEG __NEAR_SEG NON_BANKED /* make sure this code is located in non banked */

interrupt 47 void ISR(void){
PIEP=0x00;//停中断
PIFP=0x00; //清中断标志
PORTA_PA2=!PORTA_PA2;
PIEP=0xff;//开中断
}


作者: strongchen    时间: 2008-7-8 14:58

你可以设个断点看看是否能进入这个中断。中断号对应的矢量地址是否正确?
作者: bensonbin    时间: 2008-7-8 15:01

不能进入中断,一按键,程序就停了......矢量地址不是很清楚,它好像有个vector_base。
作者: strongchen    时间: 2008-7-8 15:06

你可以查一下数据手册,再和MAP文件中的地址分配比较一下。
作者: bensonbin    时间: 2008-7-8 15:08

好的,谢谢版主,我先试试看。有问题再问您。




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