您好,我用的是MSP430G2553,在datasheet中,P1.1有个功能为TA0.0是比较输出OUT0,是不是设置好TACCTL0中的输出模式就对应OUT0输出呢???TACCTL1对应OUT1,TACCTL2对应OUT2???
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.
您好,我用的是MSP430G2553,在datasheet中,P1.1有个功能为TA0.0是比较输出OUT0,是不是设置好TACCTL0中的输出模式就对应OUT0输出呢???TACCTL1对应OUT1,TACCTL2对应OUT2???
//******************************************************************************
// 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|-
// | | |
// --|RST XOUT|-
// | |
// | 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 WDT
P1DIR |= 0x0C; // P1.2 and P1.3 output
P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 options
CCR0 = 128; // PWM Period/2
CCTL1 = OUTMOD_6; // CCR1 toggle/set
CCR1 = 32; // CCR1 PWM duty cycle
TACTL = TASSEL_2 + MC_3; // SMCLK, up-down mode
__bis_SR_register(LPM0_bits); // Enter LPM0
}
您好,我知道输出模式怎么配置。可能是我前面表达的有问题,你回答的并不是我需要的答案。我再把问题说一下吧,希望能让您明白我的提问同时解答一下我的疑惑,谢谢!!!
问题如下:(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了。