標題: MSP4305529呼吸燈 [打印本頁]

作者: 嵌入式17    時間: 2018-7-14 09:43
標題: MSP4305529呼吸燈
  1. unsigned const PWMPeriod = 1500; //設(shè)置PWM周期參數(shù),const聲明此值不允許改變.該數(shù)值太大,會導(dǎo)致LED閃爍
  2.   volatile unsigned int i;        //聲明變量i是隨時可變的,系統(tǒng)不要去優(yōu)化這個值
  3.   WDTCTL = WDTPW + WDTHOLD;   // 關(guān)閉看門狗
  4.   P1DIR |=BIT3;              // 設(shè)置 P1.3為輸出
  5.   P1SEL |=BIT3;              // 設(shè)置 P1.3為TA0.2輸出
  6.   TA0CCR0 = PWMPeriod;           // 設(shè)置PWM 周期
  7.   TA0CCTL2 = OUTMOD_7;           // 設(shè)置PWM 輸出模式為:7 - PWM復(fù)位/置位模式,
  8.                               // 即輸出電平在TAR的值等于CCR2時復(fù)位為0,當TAR的值等于CCR0時置位為1,改變CCR2,從而產(chǎn)生PWM。其實模式2也可以
  9.   TA0CTL= TASSEL_2 +MC_1;    // 設(shè)置TIMERA的時鐘源為SMCLK, 計數(shù)模式為up,到CCR0再自動從0開始計數(shù)
  10.   while(1)
  11.   {
  12.    TA0CCR2=0;//確保最開始是暗的
  13.     //漸亮過程:不斷設(shè)置TA0CCR2的值,使翻轉(zhuǎn)的時間變長,改變PWM的占空比
  14.     for(i=0;i<PWMPeriod;i+=1)
  15.     {
  16.       TA0CCR2=i;
  17.       delay_nms(4-(i/500));  //占空比變化的延時,調(diào)整延遲時間可改變呼吸燈變暗的速度
  18.                              //在暗的時候延長delay時間,可增強效果
  19.      }
  20.     //漸暗過程:不斷設(shè)置TA0CCR2的值,使翻轉(zhuǎn)的時間變短,改變PWM的占空比
  21.     for(i=PWMPeriod;i>0;i-=1)
  22.     {
  23.       TA0CCR2=i;
  24.       delay_nms(4-(i/500));           //占空比變化的延時,調(diào)整延遲時間可改變呼吸燈變暗的速度
  25.                                     //在暗的時候延長delay時間,可增強效果
  26.     }
  27.      TA0CCR2=0;  //確保燈暗
  28.      delay_nms(250); //時間長一點,增強視覺效果
復(fù)制代碼



huxideng.zip

892 Bytes, 下載次數(shù): 49, 下載積分: 黑幣 -5


作者: yang1597    時間: 2018-12-6 10:51
這個程序  沒辦法生成.0ut文件啊




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1