找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2488|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

MSP430F5529單片機如何實時調(diào)節(jié)PWM波?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:400296 發(fā)表于 2019-7-9 11:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
各位師傅,前輩好,我想請問一下,我現(xiàn)在用的是MSP430F5529,我現(xiàn)在想要實現(xiàn)的功能是不斷采樣電壓值,根據(jù)電壓值輸出不同占空比的PWM波,但是由于輸出pwm我學例程時都是最后讓CPU處于低功耗模式,無法進行第二次采樣,請問有什么辦法嗎.謝謝,(我將__bis_SR_register(LPM0_bits); 刪去時,示波器上就無法顯示pwm波)
unsigned int myvolt,peried_on;
int main(void)
{

        WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
        P6SEL|= 0x01;
        REFCTL0 &= ~REFMSTR;
        ADC12CTL0 = ADC12ON+ ADC12SHT0_8+ADC12REFON+ADC12REF2_5V;
        ADC12CTL1 =  ADC12SHP+ ADC12CONSEQ_2;                     
        ADC12MCTL0 = ADC12SREF_1+ADC12INCH_0;                 
        __delay_cycles(100);
        ADC12CTL0 |= ADC12ENC;
        while(1)
        {
          ADC12CTL0 |= ADC12SC;   // Start convn - software trigger
          myvolt=ADC12MEM0;
          peried_on=PID_volt(myvolt);
          Input_PWM();
        }

}

void Input_PWM(unsigned int peried_on)
{
   P2DIR |= BIT0;                       // P2.0 and P2.1 output
   P2SEL |= BIT0;                       // P2.0 and P2.1 options select
   TA1CCR0 = 540;                          // PWM Period
   TA1CCTL1 = OUTMOD_7;                      // CCR1 reset/set
   TA1CCR1 =peried_on ;
   TA1CTL = TASSEL_2 + MC_1 + TACLR;
   P1DIR|=0X01;
   TA0CCTL0=CCIE;
   TA0CCR0=5;
   TA0CTL=TASSEL_2+ MC_3 + TACLR;
   __bis_SR_register(LPM0_bits);           // Enter LPM0
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表