新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > IAR For AVR 定時器中斷初值計算方法

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

        作者: 時間:2016-12-03 來源:網(wǎng)絡(luò) 收藏

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

        本文引用地址:http://www.104case.com/article/201612/325108.htm

        定時器1 (16位定時器)寄存器 TCCR1B = 0x04 設(shè)定 256預(yù)分頻

        要利用定時器定時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一指令 一周期



        關(guān)鍵詞: IARAVR定時器中斷初值計

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 巴楚县| 兴仁县| 唐山市| 建始县| 登封市| 柘城县| 武隆县| 武清区| 铜陵市| 渝中区| 延长县| 沿河| 曲周县| 兴隆县| 淳安县| 丽江市| 聂荣县| 南部县| 醴陵市| 邹城市| 阜平县| 元阳县| 大埔县| 佳木斯市| 天祝| 屏东市| 东兰县| 濉溪县| 荔波县| 运城市| 云南省| 高阳县| 滁州市| 盐池县| 方正县| 大方县| 礼泉县| 宜兰市| 浮山县| 麻阳| 昌吉市|