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

程序死在中断里面出不来

程序死在中断里面出不来

程序吐下如下:
void IC_Init(void){
    TSCR1=0x80;//时钟允许
    TSCR2=0x04;//div by 16
    TCTL3=0x40;//c-输入捕捉7任何沿有效,            
    TCTL4=0x01;//0表示ICx禁止, 1表示上升沿, 2表示下降沿, 3表示任何沿      
    TIE  =0x81;//每一位对应相应通道中断允许,0表示禁止中断
    TIOS =0x00;//每一位对应通道的: 0输入捕捉,1输出比较
    }
unsigned char Tc0IsrFlag=0;
unsigned char Tc0FirstIsrFlag=1,Input_Num;
int tc0=0,tc0last=0;
int period=0;
void main(void) {
DDRB=0xff;
setbusclock();
PWM_Init();
IC_Init();
EnableInterrupts;
for(;;){
if(Tc0IsrFlag){
tc0=TC0;
if(Tc0FirstIsrFlag==1) Tc0FirstIsrFlag=0;
else period=tc0-tc0last;
tc0last=tc0;
Tc0IsrFlag=0;
}

}

}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 8 ISR_TimerChan0(void) {
Tc0IsrFlag=1;
TFLG1_C0F=1;
}

我单步执行的时候,程序进入中断以后就一直在中断服务程序里面,回不到主程序。不知道问题出在哪儿?哪位高手帮我看一下
没有人知道吗?
3# flexraybeginer

清零了啊,
TFLG1_C0F=1;这句话就是把标志位清零的
楼上正解,多谢!
返回列表