微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > AVR定时器的用法要点介绍

AVR定时器的用法要点介绍

时间:08-10 来源:互联网 点击:

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分钟

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top