yewuyi 发表于 2014-5-7 14:35 
就是把定时器计数值保存到缓冲寄存器,在一次执行判断定时器是否溢出等代码时,先把定时器当前的计数值和 ...
您好,前辈,我用PIC12F509做定时取反测试,每次上电测得的定时都相差0.1ms
//PIC12F509定时程序
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
#define Cap_V GP2
#define LED GP4
__CONFIG(0x0fea); //也可以在编译环境里设置,打开《PIC12F508_509.pdf》第42页,会有"Special Fetures Of The CPU",配置位
//初始化函数
void init()
{
TRIS=0X00; //全部输出
OPTION=0X00; //设置所有I/O走做普通I/O口
TMR0 = 56;
}
void main()
{
uchar i;
init();
while(1)
{
if(TMR0 > 150)
{
TMR0 = 56;
if(i)
{
i = 0;
LED = 1;
}
else
{
i = 1;
LED = 0;
}
}
}
}
|