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