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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430單片機(jī)定時器面面觀

          MSP430單片機(jī)定時器面面觀

          作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
          對于MSP430 X449而言:

          默認(rèn)情況如下:

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

          ACLK= LFXT1 = 32768Hz, 低頻時鐘源

          MCLK=SMCLK= default DCO = 32 x ACLK = 1048576Hz 高頻時鐘源

          ACLK ,MCLK ,SMCLK的頻率可以根據(jù) FLL+相應(yīng)的寄存器來調(diào)節(jié)

          時鐘源有:

          LFXT1CLK: 32768 HZ 即:32K

          XT2CLK: 4M

          DCOCLK: 選擇AP18PF時

          FN_2 1.04875M

          FN_3 1.08860M

          FN_4 1.710

          FN_8 3.4M

          以下引腳的復(fù)用功能如下:

          P1.5 : ACLK 82

          P1.4: SMCKL 83

          P1.1: MCLK 86

          —————————————————————————————————————————

          msp430 定時器學(xué)習(xí)筆記

          _BIS_SR(LPM3_bits + GIE) //進(jìn)入LPM3低功耗模式和開總中斷允許

          中斷

          #pragma vector=TIMERA0_VECTOR

          __interrupt void Timer_A(void)

          {

          }

          TACTL timerA控制寄存器

          TAR timerA計(jì)數(shù)器

          CCTL0 捕獲/比較控制寄存器0

          CCRO 捕獲/比寄存器0(具有最高中斷優(yōu)先級別,單獨(dú)使用一個中斷向量)

          CCTL1 捕獲/比較寄存器1

          CCR1 捕獲/比較寄存器1

          CCTL2 捕獲/比較寄存器2

          CCR2 捕獲/比較寄存器2

          TAIV 中斷向量寄存器

          其中,定時器,CCR2,CCR1三者共用一個中斷向量

          ——————————————————————————————————————————

          定時器A是一個16位的定時/計(jì)數(shù)器。它有3個捕獲/比較寄存器;能支持多個時序控制、多個捕獲/比較功能和多個PWM輸出;有廣泛的中斷功能,中斷可由計(jì)數(shù)器溢出產(chǎn)生,也可以由捕獲/比較寄存器產(chǎn)生。

          一、TimerA的4種工作模式

          1. 停止模式

          用于定時器暫停,并不發(fā)生復(fù)位,所有寄存器現(xiàn)行的內(nèi)容在停止模式結(jié)束后都可用。當(dāng)定時器暫停后重新計(jì)數(shù)時,計(jì)數(shù)器將從暫停時的值開始以暫停前的計(jì)數(shù)方向計(jì)數(shù)。

          2. 增計(jì)數(shù)模

          捕獲/比較寄存器CCR0用作Timer_A增計(jì)數(shù)模式的周期寄存器。因?yàn)镃CR0為16位寄存器,所以該模式適用于定時器周期小于65536的連續(xù)計(jì)數(shù)情況。計(jì)數(shù)器TAR可以增計(jì)數(shù)到CCR0的值,當(dāng)計(jì)數(shù)值與CCR0的值相等(或定時器值大于CCR0的值)時,定時器復(fù)位并從0開始重新計(jì)數(shù)。

          3. 連續(xù)計(jì)數(shù)模式

          在需要65536個時鐘周期的定時應(yīng)用場合常用連續(xù)計(jì)數(shù)模式。定時器從當(dāng)前值計(jì)數(shù)到0FFFH后,又從0開始重新計(jì)數(shù)。

          連續(xù)計(jì)數(shù)模式的典型應(yīng)用:

          產(chǎn)生多個獨(dú)立的時序信號。利用捕獲比較寄存器捕獲各種其它外部事件發(fā)生的定時器數(shù)據(jù)。

          產(chǎn)生多個定時信號。

          4. 增/減計(jì)數(shù)模式

          需要生成對稱波形的情況經(jīng)??梢允褂迷?減計(jì)數(shù)模式。該模式下,定時器先增計(jì)數(shù)到CCR0的值,然后反向減計(jì)數(shù)到0。計(jì)數(shù)周期仍由CCR0定義,它是CCR0計(jì)數(shù)器值的2倍。

          二、TimerA寄存器說明

          寄存器

          寄存器說明

          類型

          地址

          初始狀態(tài)

          TACTL

          Timer_A控制寄存器

          讀寫

          160H

          POR復(fù)位

          TAR

          Timer_A計(jì)數(shù)器

          讀寫

          170H

          POR復(fù)位

          CCTL0

          捕獲/比較控制寄存器0

          讀寫

          162H

          POR復(fù)位

          CCR0捕獲/比較寄存器0

          讀寫

          172H

          POR復(fù)位

          CCTL1

          捕獲/比較控制寄存器1

          讀寫

          164H

          POR復(fù)位

          CCR1捕獲/比較寄存器1

          讀寫

          174H

          POR復(fù)位

          CCTL2

          捕獲/比較控制寄存器2

          讀寫

          166H

          POR復(fù)位

          CCR2捕獲/比較寄存器2

          讀寫

          176H

          POR復(fù)位

          TAIV中斷向量寄存器

          讀寫

          12EH

          POR復(fù)位

          1. TACTL 控制寄存器,各位定義:

          15-10

          987

          6

          5

          4

          3

          2

          1

          0

          未用

          SSEL1SSEL0ID1ID0MC1MC0未用CLRTAIETAIFG

          SSEL1、SSEL0選擇進(jìn)入定時器分頻器的時鐘源

          SSEL1

          SSEL0

          輸入時鐘源

          說明

          00TACLK用特定的外部引腳信號
          01ACLK輔助時鐘
          10MCLK系統(tǒng)時鐘
          11INCLK外部輸入時鐘

          ID1、ID0輸入分頻系數(shù)

          ID1

          ID0

          分頻系數(shù)

          00不分頻
          011/2分頻
          101/4分頻
          111/8分頻

          MC1、MC0計(jì)數(shù)模式控制位

          MC1

          MC0

          模式

          00停止模式
          01增計(jì)數(shù)模式
          10減計(jì)數(shù)模式
          11增/減計(jì)數(shù)模式

          CLR——定時器清除。當(dāng)該位為1時,定時器復(fù)位。

          TAIE——定時器中斷允許位。0:禁止定時器溢出中斷;1:允許定時器溢出中斷。

          TAIFG——定時器溢出標(biāo)志位。

          增計(jì)數(shù)模式:當(dāng)定時器由CCR0計(jì)數(shù)到0時,TAIFG置位;

          連續(xù)計(jì)數(shù)模式:當(dāng)定時器由0FFFFH計(jì)數(shù)到0時,TAIFG置位;

          增/減計(jì)數(shù)模式:當(dāng)定時器由CCR0減計(jì)數(shù)到0時,TAIFG置位。

          2. TAR 16位計(jì)數(shù)器。

          3. CCTLx 捕捉/比較控制寄存器,各位定義:

          15 14

          13 1211109

          8

          7 6 5

          4

          3

          2

          1

          0

          CAPTMOD1~0

          CCIS1~0SCSSCCIx

          CAP

          OUTMODx

          CCIEx

          CCIx

          OUT

          COV

          CCIFGx

          CAPTMOD1~0——選擇捕獲模式

          00:禁止捕獲模式

          01:上升沿捕獲

          10:下降沿捕獲

          11:上升沿與下降沿都捕獲

          CCIS1~0——捕獲事件輸入源

          00:選擇CCIxA

          01:選擇CCIxB

          10:選擇GND

          11:選擇Vcc

          SCS——選擇捕獲信號與定時器時鐘同步、異步關(guān)系

          0:異步捕獲

          1:同步捕獲(實(shí)際中經(jīng)常使用同步模式,捕獲總是有效的)

          SCCIx——比較相等信號EQUx將選中的捕獲/比較輸入信號CCIx(CCIxA,CCIxB,Vcc和GND)進(jìn)行鎖存,然后可由SCCIx讀出。

          CAP——選擇捕獲模式還是比較模式。

          0:比較模式

          1:捕獲模式

          OUTMODx——選擇輸出模式

          000:輸出

          001:置位

          010:PWM翻轉(zhuǎn)/復(fù)位

          011:PWM置位/復(fù)位

          100:翻轉(zhuǎn)

          101:復(fù)位

          110:PWM翻轉(zhuǎn)/置位

          111:PWM復(fù)位/置位

          CCIEx——捕獲/比較模塊中斷允許位

          0:禁止中斷

          1:允許中斷

          CCIx——捕獲/比較模塊的輸入信號

          捕獲模式:由CCIS0和CCIS1選擇的輸入信號可通過該位讀出

          比較模式:CCIx復(fù)位

          OUT——輸出信號(如果OUTMODx選擇輸出模式0,則該位對應(yīng)于輸入狀態(tài))

          0:輸出低電平

          1:輸出高電平

          COV——捕獲溢出標(biāo)志

          0:沒有捕獲溢出

          1:發(fā)生捕獲溢出

          當(dāng)CAP=0時,選擇比較模式。捕獲信號發(fā)生復(fù)位。沒有使COV置位的捕獲事件。

          當(dāng)CAP=1時,選擇捕獲模式。如果捕獲寄存器的值被讀出前再次發(fā)生捕獲事件,則COV置位。程序檢測COV來判斷原值讀出前是否又發(fā)生捕獲事件。讀捕獲寄存器時不會使溢出標(biāo)志復(fù)位,須用軟件復(fù)位。

          CCIFGx——捕獲比較中斷標(biāo)志

          捕獲模式:寄存器CCRx捕獲了定時器TAR值時置位

          比較模式:定時器TAR值等于寄存器CCRx值時置位

          4. CCRx 捕捉/比較寄存器:可讀可寫

          在捕獲模式,當(dāng)滿足捕獲條件,硬件自動將計(jì)數(shù)器TAR數(shù)據(jù)寫入該寄存器。

          如果測量某窄脈沖(高電平)的脈沖長度,可定義上升沿和下降沿都捕獲。在上升沿時,捕獲一個定時器數(shù)據(jù),這個數(shù)據(jù)在捕獲寄存器中讀出;再等待下降沿到來,在下降沿時又捕獲一個定時器數(shù)據(jù);那么兩次捕獲的定時器數(shù)據(jù)差就是窄脈沖的高電平寬度。

          其中CCR0經(jīng)常用作周期寄存器,其它CCRx相同。

          5. TAIV 中斷向量寄存器:

          Timer_A模塊使用兩個中斷向量。一個單獨(dú)分配給捕獲/比較寄存器CCR0;另一個作為共用中斷向量用于定時器和其它的捕獲/比較寄存器。

          捕獲/比較寄存器CCR0中斷向量具有最高的優(yōu)先級。因?yàn)镃CR0能用于定義增計(jì)數(shù)和增/減計(jì)數(shù)模式的周期。因此,它需要最快速的服務(wù)。CCIFG0在被中斷服務(wù)時能自動復(fù)位。

          CCR1~CCRx和定時器共用另一個中斷向量,屬于多源中斷,對應(yīng)的中斷標(biāo)志CCIFG1~CCIFGx和TAIFG1在讀中斷向量字TAIV后,自動復(fù)位。如果不訪問TAIV寄存器,則不能自動復(fù)位,須用軟件清除。

          15~5

          4~ 10

          0~0

          中斷向量0

          中斷優(yōu)先級

          中斷源

          縮寫

          TAIV的內(nèi)容

          最高捕獲/比較器1CCIFG12
          捕獲/比較器2CCIFG24
          ......
          捕獲/比較器xCCIFGx
          最低定時器溢出TAIFG110
          沒有中斷將掛起

          ————————————————————————————————————————————————

          //******************************************************************************

          //

          // Lierda, Inc

          // Built with IAR Embedded Workbench Version: 3.41a

          // ID: MSP430-TEST44X

          // 程序功能:實(shí)現(xiàn)延時 1S,驅(qū)動LED4閃爍

          // 通過本實(shí)驗(yàn)了解MSP430內(nèi)部的時鐘來源和不同頻率的設(shè)置。

          // 硬件連接:在必須連接P1.1、P1.5短接器,

          //******************************************************************************

          #include "msp430x44x.h"

          void main(void)

          {

          WDTCTL = WDTPW + WDTHOLD; // 停止看門狗定時器

          TACTL = TASSEL0 +TACLR; //選擇ACLK為分頻時鐘源,清TAR

          TACTL |= MC0; //開啟Timer_A,連續(xù)計(jì)數(shù)模式

          CCTL0 = CCIE; //開啟Timer_A的中斷

          CCR0 = 32000; //延時32000/32k=1s

          P5DIR |= BIT1;

          P5OUT |= BIT1;

          while(1)

          {

          _BIS_SR(LPM3_bits+GIE); //進(jìn)入低功耗模式

          }

          }

          #pragma vector=TIMERA0_VECTOR

          __interrupt void Time_A()

          {

          P5OUT ^=BIT1;

          }



          關(guān)鍵詞: MSP430單片機(jī)定時

          評論


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