This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC430F5137 PWM占空比调节问题

Other Parts Discussed in Thread: CC430F5137

想通过CC430F5137自身的TA0定时器的CCR1、CCR2、CCR3进行输出3路占空比可调的PWM,同时将3路PWM信号通过IO口映射到P3.0、P3.1、P3.2的IO口具体代码如下:

uint8_t IintPWM(void)//PWM参数设置
{
 
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
   PMAPPWD = 0x02D52;                        // Get write-access to port mapping regs   
   //P3MAP0 = PM_TA0CCR0A;                       // Map CBOUT output to P1.6   
   P3MAP0 = PM_TA0CCR1A;  
   P3MAP1 = PM_TA0CCR2A;  
   P3MAP2 = PM_TA0CCR3A; 
  // P3MAP3 = PM_NONE; 
   P3MAP7 = PM_NONE;      
   PMAPPWD = 0;    
 
   // Setup Port Pins               
   P3DIR |= BIT0+BIT1+BIT2;      // P2.0,2,4,6,7 output  
   P3SEL |= BIT0+BIT1+BIT2;        // P2.0,2,4,6,7 Port Map functions     
   // Setup TB0   
   TA0CCTL0 = OUTMOD_4;                      // CCR1 toggle/set 
   TA0CCR0 = 256;                            // PWM Period/2   
   TA0CCTL1 = OUTMOD_6;                      // CCR1 toggle/set  
   TA0CCR1 = 192;                            // CCR1 PWM duty cycle  
   TA0CCTL2 = OUTMOD_6;                      // CCR2 toggle/set  
   TA0CCR2 = 128;                            // CCR2 PWM duty cycle  
   TA0CCTL3 = OUTMOD_6;                      // CCR3 toggle/set  
   TA0CCR3 = 64;                             // CCR3 PWM duty cycle  

    TA0CTL = TASSEL_2 + MC_3 + TACLR;         // SMCLK, up mode, clear TAR
   __bis_SR_register(LPM3_bits);         // Enter LPM3
   __no_operation();                         // For debugger
  return 0;
}

占空比调节函数:

uint8_t SetPWMDUTY(uint16_t  PWM_1,uint16_t PWM_2,uint16_t PWM_3)  //3路PWM输出
{
  TA0CCR1 = PWM_1;     
  TA0CCR2 = PWM_2; 
  TA0CCR3 = PWM_3; 
  return 0;
}

但是发现在程序运行过程中,无法进行占空比调节,请问要如何才能实现在占空比可调节??