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条回答
lixin91985
2020-02-10 05:38
还是不死心 ,重新开了个项目,很简单的 。

#include "Main_heard.h"

void main(void)
{
//T0IF=0;
  T0IE=1;//open int  need alawys open
  PSA=0; PS1=0;  PS0=0;
  T0CS=0;
TMR0=0;
  
PEIE=1;
GIE=1;
while(1);
}


/****************ISR******************************/
static void interrupt ISR(void)                        // Here be interrupt function - the name is unimportant.
{
  if(T0IE&T0IF)// SYSTEMTICK 4.096MS int  need scan led an count or decount
       {T0IF=0;

         }

if(RBIE&RBIF)//partB int need scan key
        {RBIF=0;

         }

if(TMR1GIE&TMR1GIF)//ccp INT  read perid
        {TMR1GIF=0;

        }

if(TMR2IE&TMR2IF)// PWM TIME INT    CHANGE DUTY
      {TMR2IE=0;
      //
      }

}

以上为全部源代码 。


发现只要T0溢出,以后怎么搞都逛if(TMR2IE&TMR2IF)// .


实在是很郁闷。

怎么会出这样的事呢 ?

一周热门 更多>