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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC16 定時器與晶振計算

          PIC16 定時器與晶振計算

          作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
          PIC16定時器晶振計算

          T=(256-A)*(4/F)*分頻比
          T:是你要設(shè)定的時間.
          A:是對應(yīng)要賦的值(就是我要得到的值).

          本文引用地址:http://www.ex-cimer.com/article/201611/316235.htm

          F:晶振頻率
          Tmax=256*(4/F)*分頻比max
          T:單位是US
          1S=1000MS=1000000US

          分頻器一般都是跟計數(shù)單元一起結(jié)合使用。

          預分頻比是在計數(shù)單元值發(fā)生變化之前起作用(假如不用預分頻時,計數(shù)器在每個上升沿到來時加1,而現(xiàn)在使用分頻比為1:2的預分頻器的話,那么必須等到兩個上升沿的到來,計數(shù)器才會加1)

          后分頻器與預分頻器功能一樣,只不過是在計數(shù)器值發(fā)生改變后起作用。像TMR2的后分頻器,如果不使用,計數(shù)器一但發(fā)生溢出,將立即置位標志為TMR2IF,但是如果有1:2的后分頻器的話,必須兩次溢出后才會置位。


          關(guān)于PIC單片機的定時器精準計時的計算

          在此用了16C711單片機的TMR0做定時中斷,希望實現(xiàn)精準計時,在程序中,TMR0用了晶振的32分頻,初值#0FCH,因此POPBEAR兄弟計 算出每個定時中斷的計時時間為(256-X)*32*4/32768=0.015625秒。注意,問題就在這里!實際上這個時間是TMR0的初值被置入后 兩個指令周期后(見PIC單片機定時器/計數(shù)器資料)到下一次中斷發(fā)生時的時間。如果要用到定時器的精準定時,必須理解這一概念!

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


          那么怎樣得到精準計時呢?這就要在對定時器的初值賦值上和中斷處理程序中做文章。




          關(guān)鍵詞: PIC16定時器晶振計

          評論


          技術(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); })();