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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430F5529 (六)定時(shí)器Timer_A-2

          MSP430F5529 (六)定時(shí)器Timer_A-2

          作者: 時(shí)間:2016-11-28 來源:網(wǎng)絡(luò) 收藏

          6.4.2 捕獲模式
          當(dāng)CAP=1時(shí),選擇捕獲模式。捕獲模式用于記錄時(shí)間事件,比如速度估計(jì)或時(shí)間測量。捕獲輸入CCIXA和CCLXB連接外部的引腳或內(nèi)部的信號,這通過CCISX位來選擇。CMX位選擇捕獲輸入信號觸發(fā)沿;上升沿、下降沿或兩者都捕獲。當(dāng)輸入信號的觸發(fā)沿到來時(shí),捕獲事件發(fā)生:
          ○定時(shí)器的TAR值復(fù)制到TACCRX寄存器中
          ○中斷標(biāo)志位CCIFG置位
          注意:①捕獲信號可能會和定時(shí)器時(shí)鐘不同步,并導(dǎo)致競爭條件的發(fā)生。將SCS位置位可以在下個(gè)定時(shí)器時(shí)鐘使捕獲同步
          ②如果第二次捕獲發(fā)生時(shí),第一次捕獲的TAR值還沒有及時(shí)被存到TACCRx,捕獲比較寄存器就會產(chǎn)生一個(gè)溢出邏輯,COV位在此時(shí)置位, COV位必須軟件清除。

          6.5 輸出模塊
          傳統(tǒng)的定時(shí)器,都是通過標(biāo)志位的判斷來定時(shí)觸發(fā)事件的。而430則具有輸出模塊,通過和定時(shí)結(jié)合起來,可以方便的產(chǎn)生PWM信號或者其它控制信號
          每個(gè)捕獲/比較器都有一個(gè)輸出口,如P1.1-P1.5對應(yīng)TA0.0-TA0.4這5個(gè)捕獲比較器的輸出。

          輸出模式:輸出模式由OUTMODx位來確定,如下表對于所有模式來說(模式0除外),OUTx信號隨著定時(shí)器時(shí)鐘的上升沿而改變。輸出模式2,3,6和7對輸出模式0無效,因?yàn)榇四J较?,EQUx=EQU0。
          (復(fù)位指的是置0)


          OUTMODX模式說明
          000輸出輸出信號OUTx由OUT位定義。當(dāng)OUT位更
          新時(shí),OUTx信號立刻更新
          001置位當(dāng)定時(shí)器計(jì)數(shù)到TACCRX值時(shí),輸出置位,并保
          持置位直到定時(shí)器復(fù)位或選擇了另一個(gè)輸出模式
          010翻轉(zhuǎn)/復(fù)位當(dāng)定時(shí)器計(jì)數(shù)到TACCRX值時(shí),輸出翻轉(zhuǎn)。當(dāng)定
          時(shí)器計(jì)數(shù)到TACCR0值時(shí),輸出復(fù)位
          011置位/復(fù)位當(dāng)定時(shí)器計(jì)數(shù)到TACCRX值時(shí),輸出置位。當(dāng)定
          時(shí)器計(jì)數(shù)到TACCR0值時(shí),輸出復(fù)位
          100翻轉(zhuǎn)當(dāng)定時(shí)器計(jì)數(shù)到TACCRX值時(shí),輸出翻轉(zhuǎn)。輸出
          信號的周期將是定時(shí)器的2倍
          101復(fù)位當(dāng)定時(shí)器計(jì)數(shù)到TACCRX值時(shí),輸出復(fù)位,并保
          持復(fù)位直到選擇了另一個(gè)輸出模式
          110翻轉(zhuǎn)/置位當(dāng)定時(shí)器計(jì)數(shù)到TACCRX值時(shí),輸出翻轉(zhuǎn)。當(dāng)定
          時(shí)器計(jì)數(shù)到TACCR0值時(shí),輸出置位
          111復(fù)位/置位當(dāng)定時(shí)器計(jì)數(shù)到TACCRX值時(shí),輸出復(fù)位。當(dāng)定
          時(shí)器計(jì)數(shù)到TACCR0值時(shí),輸出置位


          舉一個(gè)例子:結(jié)合上表看下圖

          注意:在模式轉(zhuǎn)換的時(shí)候,一定要保持OUTMOD至少一位置位,除非轉(zhuǎn)向0模式。所以最好的做法是:先把OUTMOD置為7,然后再清除掉不需要的位。
          做一個(gè)說明:比較模式下,當(dāng)計(jì)數(shù)器TAR中的值和TACCRX中的設(shè)計(jì)值相等時(shí),相應(yīng)捕獲/比較器的EQUx就會置位。那么EQU0、EQUx和OUTMOD是怎么來影響輸出的呢?以模式2(翻轉(zhuǎn)/復(fù)位)為例,該模式的定義是這樣的:當(dāng)定時(shí)器計(jì)數(shù)到TACCRX值時(shí),輸出翻轉(zhuǎn)。當(dāng)定時(shí)器計(jì)數(shù)到TACCR0值時(shí),輸出復(fù)位。于是,這句話就也可以翻譯成在模式2的條件下,當(dāng)EQUX=1時(shí),輸出翻轉(zhuǎn);當(dāng)EQU0等于1的時(shí)候,輸出復(fù)位。這兩個(gè)信號這里相當(dāng)于兩個(gè)觸發(fā)(使能)信號了。

          總結(jié)
          實(shí)驗(yàn)一:
          /*利用Timer_A比較模式下的多路定時(shí),讓LED閃爍*/
          #include
          void main(void)
          {
          WDTCTL=WDTPW+WDTHOLD;
          P1DIR|=(BIT1+BIT2+BIT3+BIT4+BIT5);//P1.1-P1.5為輸出方向
          P1OUT=0x00; //全部拉低,初始化LED全滅
          TA0CCTL1=CCIE; //捕獲比較器1開啟CCIFG位中斷
          TA0CCR1=13107; //置入要比較的數(shù)值0xff/5=13107
          TA0CCTL2=CCIE; //捕獲比較器2開啟中斷
          TA0CCR2=26214; //13107*2=26214
          TA0CCTL3=CCIE; //捕獲比較器3開啟中斷

          TA0CCR3=39321; //13107*3=39321
          TA0CCTL4=CCIE; //捕獲比較器4開啟中斷
          TA0CCR4=52428; //13107*4=52428
          TA0CTL|=TACLR+TAIE; //開啟中斷并清零
          TA0CTL|=TASSEL_1+MC_2+TAIE;//選擇SCLK32.768KHZ作為時(shí)鐘,選用連續(xù)模式,并開啟中斷
          /*這樣的話,5個(gè)燈閃一遍的時(shí)間為0xffff/32768=2S*/
          __enable_interrupt(); //開啟總中斷
          while(1);
          }
          /*TIMER0_A0_VECTOR是計(jì)時(shí)器0的CCR0的中斷寄存器,TIMER0_A1_VECTOR是計(jì)時(shí)器0的CCR1-CCR4、TA的寄存器*/
          /*同理定時(shí)器TA1也是分為兩個(gè)TIMER1_A0_VECTOR和TIMER1_A1_VECTOR*/
          #pragma vector=TIMER0_A1_VECTOR
          __interrupt void TimerA(void)
          {
          switch(__even_in_range(TA0IV,14))
          /* 這句話的意思是:只有在TA0IV的值是在0--14內(nèi)的偶數(shù)時(shí)才會執(zhí)行switch函數(shù)內(nèi)的語句
          其作用是提高switch語句的效率*/
          {
          case 2:P1OUT=BIT1;break; //TACCR1 CCIFG置位,表明計(jì)數(shù)值和設(shè)定的13107相等了,也就是說計(jì)了0.4S了
          case 4:P1OUT=BIT2;break; //TACCR2 CCIFG置位,表明計(jì)了0.8S了
          case 6:P1OUT=BIT3;break; //TACCR3 CCIFG置位,表明計(jì)了1.2S了
          case 8:P1OUT=BIT4;break; //TACCR4 CCIFG置位,表明計(jì)了1.6S了
          case 14:P1OUT=BIT5;break; //TAIFG置位,表明計(jì)了2S了
          default:break;
          }

          }


          評論


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