Board logo

标题: 急问关于RTI中断的问题! [打印本页]

作者: pigswine    时间: 2006-7-4 16:37     标题: 急问关于RTI中断的问题!

希望通过RTI中断实现走马灯的功能,程序如下



#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
 void ECT_Init(void);
 void RTI_Init(void);


#pragma CODE_SEG NON_BANKED
 
interrupt   7 void RTI_int(void) {
    
    CRGINT_RTIE=0;   


    PORTB=PORTB<<1;    
    CRGFLG_RTIF=1;
    CRGINT_RTIE=1;
    EnableInterrupts;     
  
}
#pragma CODE_SEG DEFAULT    

void RTI_Init(void) {
  RTICTL=0x7f;
  CRGINT=0x80; //49hz
}


void main(void) {
    DDRB=0xff;
    PORTB=0x01;RTI_Init();
    EnableInterrupts;     
    while(1){};
 }
运行以后程序执行一次中断就不再进行了,请高手指点,多谢!


作者: strongchen    时间: 2006-7-5 12:04

首先,在中断中不要执行EnableInterrupts,否则会引起中断嵌套。中断返回时CPU会自动开中断。其次,清RTIF时不必将RTIE清零。相反,设置RTIE后,开中断之前倒应该将RTIF清零。另外,还要看一下各寄存器的物理地址映射对不对。




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