IAR For AVR 定時(shí)器中斷初值計算方法
使用芯片 AT Mega16 外部晶振 4.00MHz
本文引用地址:http://dyxdggzs.com/article/201612/325108.htm定時(shí)器1 (16位定時(shí)器)寄存器 TCCR1B = 0x04 設定 256預分頻
要利用定時(shí)器定時(shí)1秒
1,4000000 / 256 = 15625 說(shuō)明定時(shí)器每當 1/15625 秒 就會(huì )觸發(fā)一次中斷
2,65535 - 15625 = 49910 計算出要累加多少次才能在1秒后出發(fā)定時(shí)器1的溢出中斷
3,49910 <==> C2 F6 將計算后的值換算成16進(jìn)制
4, TCNT1H = 0xC2 ; 對寄存器賦值
TCNT1L = 0xF6 ;
=============================================================================
例如用16位定時(shí)器TIMER1,4MHZ晶振,256分頻,100ms定時(shí),如何求得初值賦給TCNT1?
65536-(4M/256)*0.1=63973.5
其中,4M是晶體頻率,0.1是定時(shí)時(shí)長(cháng)單位秒。
對于8位的定時(shí)器
T=(2^8-計數初值)*晶振周期*分頻數=(2^8-計數初值)/晶振頻率*分頻數
計數初值=2^8-T/晶振周期/分頻數=2^8-T*晶振頻率/分頻數
因為AVR一指令 一周期
評論