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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430G2553測(cè)試程序(呼吸燈)

          MSP430G2553測(cè)試程序(呼吸燈)

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

          //修改者h(yuǎn)ttp://jiwm.blog.163.com
          //MSP430G2553 呼吸燈演示程序 - 使用Timer_A,Up Mode, DCO SMCLK
          //
          //介紹: 該程序利用TIMER A 的 UP模式 在P1.6腳產(chǎn)生PWM輸出
          //將CCR0設(shè)置為1500來(lái)定義PWM的周期,利用循環(huán)不斷改變CCR1的值,
          //實(shí)現(xiàn)利用改變PWM的占空比來(lái)改變LED亮度.
          //ACLK = na, SMCLK = MCLK = TACLK = default DCO
          //
          //MSP430G2553
          //-----------------
          ///||XIN|-
          //| ||
          //--|RSTXOUT|-
          //||
          //|P1.6/TA1|--> CCR1 - PWM
          //
          //使用 MSP430 LaunchPad , MSP430G2553芯片
          //在IAR Embedded Workbench for MSP430 5.40下編譯測(cè)試通過(guò)
          //******************************************************************************

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

          #include "msp430g2553.h"


          // *************************************************************
          // 延時(shí)函數(shù),對(duì)于1M主頻,約延時(shí)1ms
          // *************************************************************
          void delay_1ms(void)
          {
          unsigned int k;
          for (k=0;k<195;k++);
          }

          // *************************************************************
          // 延時(shí)函數(shù),延時(shí)n*ms
          // *************************************************************
          void delay_nms(unsigned int n)
          {
          unsigned int j;
          for (j=0;j
          {
          delay_1ms();
          }
          }

          // *************************************************************
          // 主程序
          // *************************************************************
          void main(void)
          {
          unsigned const PWMPeriod = 1500; //設(shè)置PWMPeriod參數(shù)
          volatile unsigned int i;//變量
          WDTCTL = WDTPW + WDTHOLD;// 關(guān)閉看門(mén)狗
          BCSCTL1= CALBC1_1MHZ;//1M內(nèi)部時(shí)鐘,其他也可以
          DCOCTL = CALDCO_1MHZ;
          P1DIR |=BIT6;// 設(shè)置 P1.6為輸出
          P1SEL |=BIT6;// 設(shè)置 P1.6為T(mén)A0.1輸出
          TACCR0 = PWMPeriod;// 設(shè)置PWM 周期
          TACCTL1 = OUTMOD_7;// 設(shè)置PWM 輸出模式為:7 - PWM復(fù)位/置位模式,
          // 即輸出電平在TAR的值等于CCR1時(shí)復(fù)位為0,當(dāng)TAR的值等于CCR0時(shí)置位為1,改變CCR1,從而產(chǎn)生PWM。其實(shí)模式2也可以
          TACTL =TASSEL_2 +MC_1;// 設(shè)置TIMERA的時(shí)鐘源為SMCLK, 計(jì)數(shù)模式為up,到CCR0再自動(dòng)從0開(kāi)始計(jì)數(shù)
          while(1)
          {
          CCR1=0;//確保開(kāi)始是暗的
          //漸亮過(guò)程:不斷設(shè)置CCR1的值,使翻轉(zhuǎn)的時(shí)間變長(zhǎng),改變PWM的占空比
          //由于只有1個(gè)定時(shí)器,編程有些你困難,故仍引入delay函數(shù)

          for(i=0;i
          {
          CCR1=i;
          delay_nms(4-(i/500));//占空比變化的延時(shí),調(diào)整延遲時(shí)間可改變呼吸燈變暗的速度
          //在暗的時(shí)候延長(zhǎng)delay時(shí)間,可增強(qiáng)效果
          }
          //漸暗過(guò)程:不斷設(shè)置CCR1的值,使翻轉(zhuǎn)的時(shí)間變短,改變PWM的占空比
          for(i=PWMPeriod;i>0;i-=1)
          {
          CCR1=i;
          delay_nms(4-(i/500));//占空比變化的延時(shí),調(diào)整延遲時(shí)間可改變呼吸燈變暗的速度
          //在暗的時(shí)候延長(zhǎng)delay時(shí)間,可增強(qiáng)效果
          }
          CCR1=0;//確保燈暗
          delay_nms(600); //暗0.6S增強(qiáng)效果
          }
          }



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