IAR For AVR 定時器中斷初值計算方法
使用芯片 AT Mega16 外部晶振 4.00MHz
本文引用地址:http://www.ex-cimer.com/article/201612/325108.htm定時器1 (16位定時器)寄存器 TCCR1B = 0x04 設定 256預分頻
要利用定時器定時1秒
1,4000000 / 256 = 15625 說明定時器每當 1/15625 秒 就會觸發(fā)一次中斷
2,65535 - 15625 = 49910 計算出要累加多少次才能在1秒后出發(fā)定時器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-計數(shù)初值)*晶振周期*分頻數(shù)=(2^8-計數(shù)初值)/晶振頻率*分頻數(shù)
計數(shù)初值=2^8-T/晶振周期/分頻數(shù)=2^8-T*晶振頻率/分頻數(shù)
因為AVR一指令 一周期
評論