新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > IAR For AVR 定時器中斷初值計算方法

IAR For AVR 定時器中斷初值計算方法

作者: 時間:2016-12-03 來源:網絡 收藏

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

本文引用地址:http://m.butianyuan.cn/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-計數初值)*晶振周期*分頻數=(2^8-計數初值)/晶振頻率*分頻數
計數初值=2^8-T/晶振周期/分頻數=2^8-T*晶振頻率/分頻數

因為AVR一指令 一周期



評論


技術專區(qū)

關閉