AVR定时器的用法要点介绍
k;
k=TCNT1;
这里举例 如何用16位定时器T1实现高精度1秒连续定时,精准度跟所用晶振一样
T1 CTC模式,8MHz外部晶振,定时1秒的话,选256分频,刚好整步距,非常准确TOP=1000000/(0.125*256)-1=31249=0x7A11。
作连续定时,必用CTC/PWM模式作,没有累积误差,稳定度跟时钟是一样,手动重装受中断影响是很难达到的。
不过定时步距和最长定时间取决于时钟,分频系数和模式。
对于非整步距的定时时间要求,就会存在小于一个步距的偏差。
例如 T1,CTC模式,8MHz
fOCn=fclk_IO/(2*N*(1+TOP))
定时时间 T= 0.125uS*N*(1+TOP)
分频系数 定时步距 最长定时时间
1(无分频) 0.125uS 8192us 8毫秒
8 1uS 65536us 65毫秒
64 8uS 524ms 0.5秒
256 32uS 2097ms 3秒
1024 128uS 8388ms 超8秒了
定时1秒的话,选256分频,刚好整步距,非常准确,TOP=1000000/(0.125*256)-1=31249=0x7A11。
-----------当然了,时钟必须是高精度的晶振之类,不要用内部RC振荡器来瞎搞。
由于精度取决于晶振的精度,配合软件做RTC实时时钟是完全可行的。
用+/-20PPM的晶振,跑一个月误差1分钟 [60*60*24*30=2592000秒*20ppm=52秒]。
作RTC用专门为32.768KHz时钟优化的T2定时器更合适,这里只是举例T1的实现方法
如果用+/-2.5PPM的DS32KHz(MAXIM的业界最准确的32.768KHz单片稳补时钟芯片TXCO)做时钟源,超准确
指标: -40~+85度全温度范围,年误差4分钟,0~40度温度范围内+/-1PPM,年误差1分钟
- RS232、RS485和RS422介绍与比较(12-14)
- ARM处理器模式介绍和模式切换(11-28)
- EZ-USB FX2单片机CY7C68013的特性介绍(10-15)
- MCS-51单片机的中央处理器CPU介绍(05-13)
- PIC12F683微控制器实验板介绍(11-10)
- 详细介绍用51单片机解密任何红外遥控器(10-23)