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

          新聞中心

          MSP430F149 定時器

          作者: 時間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
          (1)利用定時器A的模式2(連續(xù))實現(xiàn)的定時資料

          利用定時器A的模式2(連續(xù))實現(xiàn)的定時資料 在程序中對TACTL的控制,當TACTL為如下的賦值時

          TACTL = TASSEL_2 + MC_2 + TAIE; // SMCLK, contmode, interrupt

          可以改變TASSEL_X來實現(xiàn)不同的定時,

          當為TASSEL_1時選ACLK為定時時鐘,可以實現(xiàn)最短2S的定時,其次為2S的倍數(shù)的定時。

          當為TASSEL_2時選 SMCLK為定時時鐘,定時取決于SMCLK的時鐘源,

          1、SMCLK選 DCO = 800KHZ為時鐘源,最短定時時間 為 0.08S 的定時,其次為其倍數(shù)。
          2、SMCLK選 XT2也即外部高頻晶振,此時定時取決于晶振頻率,及其對分頻的設(shè)置上。主要是設(shè)置BCSCTL1及 BCSCTS2.

          BCSCTL1 &= ~XT2OFF;
          BCSCTL2 |= SELS + DIVS_3;

          通過對上面兩句的不同設(shè)置,可實現(xiàn)不同的延時。



          /******************************************************************************
          // MSP-FET430P140 Demo - Timer_A, Toggle P3.4, Overflow ISR, DCO SMCLK
          //
          // Description: Toggle P3.4 using software and Timer_A overflow ISR.
          // In this example an ISR triggers when TA overflows. Inside the TA
          // overflow ISR P3.4 is toggled. Toggle rate is approximatlely 12Hz.
          // Proper use of the TAIV interrupt vector generator is demonstrated.
          // ACLK = n/a, MCLK = SMCLK = TACLK = default DCO ~800kHz
          //
          //MSP430F149
          // ---------------
          // /|| XIN|-
          // | | |
          // --|RST XOUT|-
          // | |
          // | P3.4|-->LED
          //
          // Dasheng
          // LiTian Electronic Inc.
          // Feb 2008
          // Built with IAR Embedded Workbench Version: 3.42A
          功 能: 由定時器A,采用800KHz的DCO,來實現(xiàn)近一秒的定時中斷;
          計算方法: T = 1/800,000 = 1.25uS so 根據(jù)連續(xù)計數(shù)模式,當計到0XFFFF時,發(fā)生溢出中斷
          因此溢出一次的時間是: 65536*1.25 = 0.0819S,所以計時1秒需12次溢出。
          ******************************************************************************/

          #include

          typedef unsigned char uchar;
          typedef unsigned int uint;
          uchar flag=0;

          void main(void)
          {
          WDTCTL = WDTPW + WDTHOLD; // Stop WDT
          BCSCTL1 &= ~XT2OFF;
          BCSCTL2 |= SELS + DIVS_3;

          3DIR|= BIT4;

          TACTL = TASSEL_2 + MC_2 + TAIE; // SMCLK, contmode, interrupt
          _BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt

          }
          // Timer_A3 Interrupt Vector (TAIV) handler
          #pragma vector=TIMERA1_VECTOR
          __interrupt void Timer_A(void)
          {
          switch( TAIV )
          {
          case 2: break; // CCR1 not used
          case 4: break; // CCR2 not used
          case 10: P4OUT ^= BIT5; // overflow
          break;
          }
          }

          /*

          // Timer A0 interrupt service routine
          #pragma vector=TIMERA0_VECTOR
          __interrupt void Timer_A (void)
          {
          P4OUT ^= BIT5; // Toggle P3.4
          }

          */

          (2)利用定時器A的模式1(上升)實現(xiàn)的定時資料

          此時要用到TACCTL0 及 TACCR0 ,根據(jù)設(shè)定的不同的TACCR0及不同的TASSEL_X即可實現(xiàn)不同的定時。

          但此時的中斷程序要改變。

          對定時器A的中斷的說明:

          1、TIMERA1_VECTOR 的中斷地址為 0XFFEA, 此中斷入口地址包含3個中斷源,屬于多源中斷,通過TAIV的值,可以知道是哪個源的中斷,當TAIV 為0X02H時 中斷源為 TACCR1 CCR1IFG

          當TAIV 為0X04H時,中斷源為 TACCR2 CCR2IFG

          當TAIV 為0X0AH時,中斷源為 TA OVERFLOW TAIFG

          2、TIMERA0_VECTOR 的中斷地址為 0XFFEC 為單源中斷,中斷源為TACCR0 CCR0IFG


          上一頁 1 2 下一頁

          關(guān)鍵詞: MSP430F149定時

          評論


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