大家好、感谢您的阅读。
我正在尝试为一个项目制作一个 PWM 信号,该 PWM 只是系统的一部分,它只能在 P2.0引脚上完成(其他引脚忙),我用 TimerA0 (P1.6)做了示例,它很好, 但是、当我使用 TimerA1 (P2.0)进行测试时、程序不起作用。
这是代码、 这里、我使用连接到 P2.4的 LED、它只是活动的指示器、图片中的信号位于 P2.0引脚上。
#include <msp430G2553.h>
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // detengo el wdt
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ; // DCO a 1 Mhz
P2DIR |=BIT4; // LED indicador
P2DIR|=BIT0; //P2.0 como salida
P2SEL|=BIT0; //Permite al pin 2.0 ser salida especial-> TA1.0
P2SEL2 &=~BIT0;
TA1CCR0 = 999; //PWM de 1KHz, tiene un periodo de 1milisegundo.
TA1CCR1 =500; // ciclo de trabajo (tiempo que la señal está a nivel alto) del 50%, la señal
//está a nivel alto 0.5milisegundos.
TA1CCTL0 |= OUTMOD_7;
TA1CTL = TASSEL_2 + MC_1; // SMCLK, up mode
while (1)
{
P2OUT|=BIT4;
__delay_cycles (100000);
P2OUT&=~BIT4;
__delay_cycles (100000);
}
}
非常感谢您的观看。
