最近在用PIC18F2525做一个解码器,其中用到了Timer0的定时功能,选用Mplab C18编译器 选用20M的晶振
在一开始使用编译器内置函数
OpenTimer0( TIMER_INT_OFF&
T0_16BIT&
T0_SOURCE_INT&
T0_PS_1_1);
以及 ReadTimer0()还有WriteTimer0(0)函数 读写定时器
问题: 用上述方式设置定时器 用示波器观察RA0端口,代码如下
if(ReadTimer==254)
{
PORTAbits.RA0=~(PORTAbits.RA0);
WriteTimer0(0);
}
示波器观察到电平跳变周期 不符合定时器的定时设定
之后不采用内置函数 直接对相关寄存器读写 同样无法得到准确的定时
这个问题困扰我很久,恳请大家帮忙思考一下!!
|