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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MSP430 定時器中斷使用總結!

          MSP430 定時器中斷使用總結!

          作者: 時間:2016-11-20 來源:網(wǎng)絡 收藏
          最近兩天琢磨了下MSP430定時器,發(fā)現(xiàn)還是挺麻煩的,在這里把學習心得記錄下來:在MSP430G2211上只有TIMER A中斷,所以在這里我們討論TIMER A ,TIMER B應該和TIMER A差不多。對于每一個定時器來說,它有兩個中斷,TIMERA0_VECTOR 和TIMERA1_VECTOR 。這兩個中斷何時被觸發(fā)呢?在MSP430中,TIMERA0_VECTOR在TACCR0寄存器溢出時被觸發(fā);而TIMERA1_VECTOR 在三個時候都可以被觸發(fā)(TACCR1 CCIFG、TACCR2 CCIFG,TAIFG只要這三個寄存器中的任何一個被置位了,TIMERA1_VECTOR 中斷就會被觸發(fā))。顯然,這樣就會有一個問題:既然三個寄存器中的任何一個被置位了都會產(chǎn)生中斷,那么用戶如何區(qū)分這三種中斷呢?在MSP430中提供了一個TAIV寄存器,在響應TIMERA1_VECTOR 時我們?nèi)ゲ榭碩AIV寄存器中的值就能得到當前是誰產(chǎn)生了中斷。代碼如下:

          #pragma vector=TIMERA1_VECTOR
          __interrupt void Timer_A(void)
          {

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

          switch(TAIV)
          {
          case 2:
          。。。。
          break;
          case 4:
          。。。。
          break;
          case 10:
          。。。。
          break;
          } 關于TAIFG這個標記,很多人認為是定時器溢出的中斷,所以很多人把TAIFG標記和TACCR0的中斷認為是一個東西,但是仔細看430的用戶手冊你會發(fā)現(xiàn),TAIFG標記并不一定是定時器溢出時才會被置位!



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();