原创 avr 定时器中断初值计算

2011-3-22 17:07 4273 7 7 分类: MCU/ 嵌入式
IAR For AVR 定时器中断初值计算方法
2009-08-10 23:57

使用芯片 AT Mega16     外部晶振 4.00MHz

定时器1   (16位定时器)寄存器 TCCR1B = 0x04 设定 256预分频

要利用定时器定时1秒

1,4000000 / 256 = 15625    说明定时器每当 1/15625 秒 就会触发一次中断

2,65535 - 15625 = 49910    计算出要累加多少次才能在1秒后出发定时器1的溢出中断

3,49910 <==> C2 F6           将计算后的值换算成16进制

4, TCNT1H = 0xC2 ;             对寄存器赋值
       TCNT1L = 0xF6 ;

=============================================================================

例如用16位定时器TIMER1,4MHZ晶振,256分频,100ms定时,如何求得初值赋给TCNT1?

65536-(4M/256)*0.1=63973.5

其中,4M是晶体频率,0.1是定时时长单位秒。

对于8位的定时器 
T=(2^8-计数初值)*晶振周期*分频数=(2^8-计数初值)/晶振频率*分频数
计数初值=2^8-T/晶振周期/分频数=2^8-T*晶振频率/分频数

因为AVR一指令 一周期

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条