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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于PIC單片機(jī)的定時(shí)器精準(zhǔn)計(jì)時(shí)的計(jì)算

          關(guān)于PIC單片機(jī)的定時(shí)器精準(zhǔn)計(jì)時(shí)的計(jì)算

          作者: 時(shí)間:2011-02-24 來源:網(wǎng)絡(luò) 收藏
          在此用了16C711的TMR0做定時(shí)中斷,希望實(shí)現(xiàn)精準(zhǔn)計(jì)時(shí),在程序中,TMR0用了晶振的32分頻,初值#0FCH,因此POPBEAR兄弟計(jì)算出每個(gè)定時(shí)中斷的計(jì)時(shí)時(shí)間為(256-X)*32*4/32768=0.015625秒。注意,問題就在這里!實(shí)際上這個(gè)時(shí)間是TMR0的初值被置入后兩個(gè)指令周期后(見PIC定時(shí)器/計(jì)數(shù)器資料)到下一次中斷發(fā)生時(shí)的時(shí)間。如果要用到定時(shí)器的精準(zhǔn)定時(shí),必須理解這一概念!

          如采用32768Hz的晶振,每個(gè)指令周期為122us,在中斷處理程序中,到TMR0的初值被置入,共有7條指令,加上TMR0的初值被置入后兩個(gè)指令周期,如果中斷處理程序不直接放在0004H地址而采用GOTO指令的兩個(gè)周期,一共為11個(gè)指令周期。也就是說,每個(gè)定時(shí)中斷發(fā)生的間隔為0.015625秒+11*122us。程序中64次中斷為1秒,那么1秒誤差為64*11*122us=85.9375ms,1分鐘的誤差為5.156s。


          那么怎樣得到精準(zhǔn)計(jì)時(shí)呢?這就要在對(duì)定時(shí)器的初值賦值上和中斷處理程序中做文章。




          評(píng)論


          相關(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); })();