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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430 定時(shí)器中斷使用總結(jié)

          MSP430 定時(shí)器中斷使用總結(jié)

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

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

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

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



          關(guān)鍵詞: MSP430定時(shí)器中斷使

          評(píng)論


          技術(shù)專(zhuān)區(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); })();