<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    MSP430F149 定時器

    發布時間:2008-11-3 22:31    發布者:MSP430
    關鍵詞: 定時器
    (1)利用定時器A的模式2(連續)實現的定時資料

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

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

    可以改變TASSEL_X來實現不同的定時,

    當為TASSEL_1時選ACLK為定時時鐘,可以實現最短2S的定時,其次為2S的倍數的定時。

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

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

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

    通過對上面兩句的不同設置,可實現不同的延時。

     

    /******************************************************************************
    //  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,來實現近一秒的定時中斷;
    計算方法: T = 1/800,000 = 1.25uS so 根據連續計數模式,當計到0XFFFF時,發生溢出中斷
    因此溢出一次的時間是: 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(上升)實現的定時資料

    此時要用到TACCTL0 及 TACCR0 ,根據設定的不同的TACCR0及不同的TASSEL_X即可實現不同的定時。

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

    對定時器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

     

    對定時時間的說明:

    當TASSEL_1時,選ACLK = 32.768KHZ,此時根據選取不同的TACCR0來實現不同的延時,

    當TASSEL_2時,選SMCLK = DCO 時,~~~~~~~~~~~~~~~~~~~~~

                                選SMCLK = XT2時,~~~~~~~~~~~~~~~~

    關鍵語句:

    TACTL = TASSEL_X + MC_1;

    TACCR0 = ~~~~~~~;

    TACCTL0 = CCIE;

    (3)、利用定時器A的比較模式,及輸出模式4和連續計數模式可實現同時實現4個獨立的定時間隔,或4種不同的頻率輸出。

    在實驗的過程中,同時驅動數碼管的4個段。 

    在比較模式下主要區分TACCR0 TACCR1 TACCR2 及TAIFG,的中斷向量及入口地址,及輸出模式(共8種)

     

    其程序如下:

    #include

    typedef unsigned char uchar;
    typedef unsigned int  uint;
    uchar flag=0;
    uchar table[] = {0x18,0x7e,0x51,0x52,0x36,0x92,0x90,0x5E,0x10,0x12}; //對應0---9的共陽極碼
    void main(void)
    {
      WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
      //BCSCTL1 |=  XT2OFF;
      //BCSCTL2 |= SELS + DIVS_3;
      TACCTL0 = OUTMOD_4 +CCIE ;  //Enable interrupt
      TACCTL1 = OUTMOD_4 +CCIE ;
      TACCTL2 = OUTMOD_4 +CCIE ;

      TACCR1 = 0X8000;
      TACCR2 = 0X2000;
      TACCR0 = 0XF000;
      P3DIR |= BIT6 + BIT7;                            // P3.4 output
      P3OUT |= BIT6 + BIT7;
      P4DIR = 0XFF;
      P4OUT = 0XFF;
      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: P4OUT ^= BIT5; TACCR1 += 0X8000;break;                          // CCR1 not used
       case  4: P4OUT ^= BIT3;TACCR2 += 0X2000;break;                          // CCR2 not used
       case 10: flag++;
       if(flag==12){P4OUT ^= BIT2; flag = 0;    }             // overflow
                break;//flag++;
     }
    }

    /**/
    // Timer A0 interrupt service routine
    #pragma vector=TIMERA0_VECTOR
    __interrupt void Timer0_A (void)
    {
      P4OUT ^= BIT4;                       // Toggle P3.4
      TACCR0 += 0XF000;
    }
    本文地址:http://www.portaltwn.com/thread-2878-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區

    相關視頻

    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷