首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

MC9S12XEP的中断处理程序

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;//开中断
}

你可以设个断点看看是否能进入这个中断。中断号对应的矢量地址是否正确?
海纳百川  有容乃大
不能进入中断,一按键,程序就停了......矢量地址不是很清楚,它好像有个vector_base。
你可以查一下数据手册,再和MAP文件中的地址分配比较一下。
海纳百川  有容乃大
好的,谢谢版主,我先试试看。有问题再问您。
返回列表