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

PWM输出问题

您好,我用的是MSP430G2553,在datasheet中,P1.1有个功能为TA0.0是比较输出OUT0,是不是设置好TACCTL0中的输出模式就对应OUT0输出呢???TACCTL1对应OUT1,TACCTL2对应OUT2???

Ling Zhu2:

//******************************************************************************
//MSP430G2xx3 Demo - Timer_A, PWM TA1, Up/Down Mode, DCO SMCLK
//
//Description: This program generates one PWM output on P1.2 using
//Timer_A configured for up/down mode. The value in CCR0, 128, defines the PWM
//period/2 and the value in CCR1 the PWM duty cycles.
//A 75% duty cycle is on P1.2.
//SMCLK = MCLK = TACLK = default DCO
//
//MSP430G2xx3
//-----------------
///|\|XIN|-
//| ||
//--|RSTXOUT|-
//||
//|P1.2/TA1|--> CCR1 - 75% PWM
//
//D. Dang
//Texas Instruments, Inc
//December 2010
//Built with CCS Version 4.2.0 and IAR Embedded Workbench Version: 5.10
//******************************************************************************#include <msp430.h>int main(void)
{WDTCTL = WDTPW + WDTHOLD;// Stop WDTP1DIR |= 0x0C;// P1.2 and P1.3 outputP1SEL |= 0x0C;// P1.2 and P1.3 TA1/2 optionsCCR0 = 128;// PWM Period/2CCTL1 = OUTMOD_6;// CCR1 toggle/setCCR1 = 32;// CCR1 PWM duty cycleTACTL = TASSEL_2 + MC_3;// SMCLK, up-down mode__bis_SR_register(LPM0_bits);// Enter LPM0
}

灰小子:

建议楼主多看看官网提供的例程。各模块常见的配置方法例程里都有的

feng gao6:

回复 灰小子:

IO口会配置,lz想说的是 TACCTLx这个寄存器是不是控制输出的OUTx,

feng gao6:

回复 Ling Zhu2:

P1.3口有比较输出????还有就是我想P1.0输出PWM,除了配置IO口功能外,是用CCTL0配置输出模式吗?

HG:

回复 feng gao6:

你可以看一下datasheet中对应的PWM章节。配置好模式,周期,占空比等信息,输出的就是如下的波形。

feng gao6:

回复 HG:

您好,我知道输出模式怎么配置。可能是我前面表达的有问题,你回答的并不是我需要的答案。我再把问题说一下吧,希望能让您明白我的提问同时解答一下我的疑惑,谢谢!!!

问题如下:(1)我用的是20PIN,msp430g2553,如下图所示红色标注出来的是Time0_A的比较出端吗?也就是PWM的输出端?

           (2)如果问题1是错的,此问题忽略。其中有两个TA0.0,三个TA0.1,是不是说Time0_A最多可以输出两路不同的PWM,其中一路有3个相同的PWM,另一路是2个相同的PWM???

            (3)如果上面2个问题都错了,此问题忽略。

                      OUT0表示TA0.0,OUT1表示TA0.1,怎么配置寄存器选择是OUT0输出还是OUT1输出?????

                    下面是我配置P1.1比较输出的过程:

                     首先通过Datasheet把P1.1配置成TA0.0功能:P1DIR |= BIT1;P1SEL |= BIT1;

                

                    然后配置Time0_A的寄存器

                       TACTL 选择SMCLK+上数模式;TACCR0 = 1000;//输出周期 ;TACCR1=500;//占空比50%

                       TACCTL0 选择输出模式7;  比较控制寄存器TACCTLx就是控制OUT0,还是OUT1或则OUT2输出吗?????这是我想问的核心问题,

                最后就是开总中断,写一个空的Time0_A中断函数,就可以在P1.1输出PWM了。

feng gao6:

问题是解决了,自己总结一下:主要是参考手册没有仔细的看明白,OUT0只能输出模式1,4,5三种模式,导致了相应的PIN脚不能输出PWM,配置好IO口的功能后,TACCTLx是对应控制OUT0,OUT1,OUT2;明白这个后,就能控制有比较输出的PIN输出需要的PWM。

赞(0)
未经允许不得转载:TI中文支持网 » PWM输出问题
分享到: 更多 (0)