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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430占空比可變的PWM波程序

          MSP430占空比可變的PWM波程序

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

          // Description: 設(shè)定一個(gè)變量來(lái)選擇初始占空比,然后通過(guò)Timer_B定時(shí)1s,每隔一秒
          // 改變一次占空比,生成占空比可變的PWM波。
          // ACLK= TACLK = 32768Hz, MCLK= SMCLK= default DCO ~ 800kHz
          // Daquan. Liu

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

          // China University of Geosciences(Wuhan)
          // 2010.12.27
          // Built with IAR Embedded Workbench Version: V3.42A
          //******************************************************************************

          #include <msp430x14x.h>

          unsigned char v=5;
          void Init_TIMER_B();
          void main(void)
          {

          WDTCTL = WDTPW + WDTHOLD; // Stop WDT

          P1DIR |= 0x0C; // P1.2 and P1.3 output
          P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 options

          Init_TIMER_B();

          TACTL = TASSEL_2 + TACLR; // SMCLK, up mode

          CCR0 = 512-1; // PWM Period
          CCTL1 = OUTMOD_7 ; // CCR1 reset/set
          CCTL2 = OUTMOD_7 ; //CCR2 reset/set
          if(v==5)
          {
          CCR1 = 128; // CCR1 PWM duty cycle
          CCR2 = 384; // CCR2 PWM duty cycle
          }
          else if (v==12)
          {
          CCR1 = 384; // CCR1 PWM duty cycle
          CCR2 = 128; // CCR2 PWM duty cycle
          }
          else
          {
          CCR1 = 128; // CCR1 PWM duty cycle
          CCR2 = 384; // CCR2 PWM duty cycle
          }

          TACTL |= MC_1; // Start Timer_A in up mode
          TBCTL |= MC_1; // Start Timer_B in up mode

          _EINT(); //開全局中斷
          _BIS_SR(LPM0_bits); // Enter LPM0

          }


          void Init_TIMER_B()
          {
          TBCTL |= TBSSEL0 +TBCLR; //ACLK
          TBCCTL0 = CCIE;
          TBCCR0 =32768; //定時(shí)1s
          }

          // Timer B0 interrupt service routine
          #pragma vector=TIMERB0_VECTOR
          __interrupt void Timer_B (void)
          {
          if(CCR1 >511)
          CCR1 = 64;
          else CCR1 += 32; // 調(diào)整占空比

          if(CCR2 < 10)
          CCR2 = 448;
          else CCR2 -= 32;

          }

          //此程序不能用定時(shí)器A中斷定時(shí)



          關(guān)鍵詞: MSP430占空比PWM

          評(píng)論


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