请教PIC的定时器

2020-02-08 12:18发布

我用PIC单片机的定时器让RA2输出113K的方波,使用的是内部4M时钟
TMR0是8位的,我现在先给TMR0赋值254  然后等待溢出中断,让RA2取反,可是输出只有21K,怎么回事呀?
刚学,请帮我看一下谢谢了、

#include<pic.h>            //包含单片机内部资源预定义
//#include<pic16630.h>         //包含 的头文件
__CONFIG(0x0194);           //芯片配置字
#define uint unsigned int
#define uchar unsigned char
#define       K113       RA2         //
void delay(uint x)
{
uint a,b;
for(a=x;a>0;a--)
  for(b=110;b>0;b--);
}

void init(void)
{

TRISA=0xF8;   //1111 1000
OPTION=0x00; //0000 1111
    INTCON=0XA0;
TMR0=0xfe;
}
void main()                //主程序
  {
init();
    while(1)
{
RA1=1;
delay(500);
RA1=0;
delay(500);
}
  }
void interrupt ISR(void)  //中断服务函数只能有一个
{
   if(T0IE && T0IF)    //判断TMR0中断
  {
  TMR0=0xfe;
  T0IF = 0;   //消除TMR0中断标志
  K113=!K113;

  }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。