<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機定時器中斷時間誤差的分析及補償

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

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

          3.3 實例

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

          程序為:
          ……
          0 CLR EA ;關(guān)CPU中斷
          1 CLR TRi ;停止定時器計數(shù)
          2 MOV R0, #OOH ;R0清零
          3 MOV R0, #LOW(216) ;定時器最大計數(shù)值的低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的機器周期數(shù)為1000。由于第1條指令到第14條指令的指令周期的機器周期數(shù)之和為13,因此,t1為13個機器周期。CPU雖在執(zhí)行第一條指令CLR TRi后停止定時器計數(shù),但在TLi、THi中分別保存了t2的低位數(shù)據(jù)和高位數(shù)據(jù)。

          4 結(jié)束語

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

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


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();