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

急问关于RTI中断的问题!

急问关于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){};
 }
运行以后程序执行一次中断就不再进行了,请高手指点,多谢!

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