PIC PICC 的奇怪问题

2020-02-09 11:25发布

今天发现一个奇怪的问题。
使用PIC16F722  这个IC出来没多久 ,需要使用PICC 9.65的编译器。

程序用SIM仿真发现总是在中断中跑,于是我关了GIE 同时查看特殊功能寄存器,发现不可能进中断,

在中断中通过判断标准位
进了这个
if(TMR2IE&TMR2IF)// PWM TIME INT    CHANGE DUTY
      {TMR2IF=0;
       TMR2IE=0;
         CCPR2L=PWM_duty;
      }

可是这个怎么可能一直在中断中跑。

还有哪位知道Startup.as这个文件有没有必要要。怎么去掉。我非常的怀疑是它在搞鬼

同事也怀疑编译器的问题 。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
millwood0
2020-02-10 22:08
"发现只要T0溢出,以后怎么搞都逛if(TMR2IE&TMR2IF)// .
     {TMR2IE=0; "

because you turned on PEIE, which made TMR2IE possible (which could have been accidentally set) and tmr2 starts to run so you go into it from time to time.

to try it, you can explicitly clear TMR2IE.

another mistake you made is that you never cleared TMR2IF so the isr is stuck processing TMR2 overflow. what you should have done is to clear TMR2IF in the isr, not TMR2IE.

一周热门 更多>