英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流
标题:
关于PIC单片机的定时器的计算
[打印本页]
作者:
kingman
时间:
2009-4-18 20:07
标题:
关于PIC单片机的定时器的计算
用
16C
711
单片机的
TMR0
做定时中断,希望实现精准计时,在程序中,
TMR0
用了晶振的
32
分频,初值
#0FCH
,因此
POPBEAR
兄弟计算出每个定时中断的计时时间为
(256-X)*32*4/32768=0.015625
秒。注意,问题就在这里!实际上这个时间是
TMR0
的初值被置入后两个指令周期后(见
PIC
单片机定时器
/
计数器资料)到下一次中断发生时的时间。如果要用到定时器的精准定时,必须理解这一概念!
如采用
32768Hz
的晶振,每个指令周期为
122us
,在中断处理程序中,到
TMR0
的初值被置入,共有
7
条指令,加上
TMR0
的初值被置入后两个指令周期,如果中断处理程序不直接放在
0004H
地址而采用
GOTO
指令的两个周期,一共为
11
个指令周期。也就是说,每个定时中断发生的间隔为
0.015625
秒
+11*122us
。程序中
64
次中断为
1
秒,那么
1
秒误差为
64*11*122us=85.9375ms,1
分钟的误差为
5.156s
。
作者:
finezhang
时间:
2010-1-4 21:52
怎样消除误差, lz讲明白一下
欢迎光临 英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 (http://enroobbs.com/)
Powered by Discuz! X3.2