TI中文支持网
TI专业的中文技术问题搜集分享网站

CC430F5137 PWM占空比调节问题

想通过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;
}

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

kqian0327:

你好,

你所谓的PWM不能调节是指的程序初始化以后不能调节还是初始化设置的时候就有问题呢?

还是你调节的速度过快?

通常调节是ok的,只是调节的瞬间会有一个PWM抖动过程。

e_tang lin:

回复 kqian0327:

是程序初始化后,无法调节。我是在按键有按下的情况下才调节的。应该不存在过快的

赞(0)
未经允许不得转载:TI中文支持网 » CC430F5137 PWM占空比调节问题
分享到: 更多 (0)