新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機定時器中斷時間誤差的分析及補償

        單片機定時器中斷時間誤差的分析及補償

        作者: 時間:2012-03-22 來源:網絡 收藏

        3.3 實例

        要求每1ms產生一次溢出時的響應延遲的。若振蕩器振蕩頻率fosc=12MHZ,工作在計數方式,工作模式為1,則響應時的新初值X1為:
        X1=216-t3× fosc/12=216-(t0+ t1)- t2=216-(1000+ 13)- t2

        程序為:
        ……
        0 CLR EA ;關CPU中斷
        1 CLR TRi ;停止定時器計數
        2 MOV R0, #OOH ;R0清零
        3 MOV R0, #LOW(216) ;定時器最大計數值的低8位送R0
        4 MOV A, R0
        5 SUBB A, #LOW(1000+13) ;216的低8位減去( t0+ t1)的低8位送累加器A
        6 SUBB A, TLi ;216的低8位減去( t0+ t1+ t2)的低8位送TLi
        7 MOV TLi, A
        8 MOV R0, #OOH ;R0清零
        9 MOV R0, #HIGH(216) ;216 的高8位送R0
        10 MOV A, R0
        11 SUBB A, #HIGH(1000+13) ;216的高8位減去( t0+ t1)的高8位送A
        12 SUBB A, THi ;216的高8位減去( t0+ t1 +t2)的高8位送A
        13 MOV THi, A
        14 SETB TRi ;重新啟動定時器
        ……

        在上式和上段程序中,由于fosc=12MHZ,中斷間隔為1ms,因此t0的機器周期數為1000。由于第1條指令到第14條指令的指令周期的機器周期數之和為13,因此,t1為13個機器周期。CPU雖在執行第一條指令CLR TRi后停止定時器計數,但在TLi、THi中分別保存了t2的低位數據和高位數據。

        4 結束語

        由于本文介紹的誤差補償方法能對定時器溢出中斷與CPU響應中斷的非固定性誤差進行有效補償,因此,該方法對于提高高頻控制系統實時控制精度和擴大應用范圍都有較高的實用價值。

        參考文獻
        [1]曹巧媛,原理及應用,電子工業出版社,1997、5
        [2]汪吉鵬等,微機原理及接口,高等教育出版社,2001、7


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 兰州市| 家居| 彰武县| 招远市| 南乐县| 西昌市| 大英县| 晋宁县| 苗栗县| 阿瓦提县| 台东市| 贡觉县| 柘荣县| 台中县| 新建县| 济南市| 响水县| 那坡县| 磐石市| 湄潭县| 通化市| 亚东县| 景宁| 乌苏市| 都江堰市| 普兰店市| 封丘县| 鹤庆县| 徐汇区| 博客| 瑞丽市| 贵溪市| 阿拉善右旗| 钦州市| 达州市| 万载县| 邯郸市| 永安市| 囊谦县| 阜宁县| 平武县|