|
楼主
查看: 2915回复: 0
发表于 2022-7-13 10:35:09
只看该作者
可用于控制电机,舵机等
#include <msp430.h>
/**
* main.c
*/
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
TA0CTL = TASSEL0 + TACLR+MC__UP; // ACLK, 清除 TAR
TA0CCR0 = 512 - 1; // PWM 周期
TA0CCTL0 = OUTMOD_7;
TA0CCR0 = 384; // 占空比 384/512=0.75
TA0CCTL1 = OUTMOD_7;
TA0CCR1 = 128; // 占空比 128/512=0.25
TA0CCTL2 = OUTMOD_7;
TA0CCR2 = 128; // 占空比 128/512=0.25
TA0CCTL3 = OUTMOD_7;
TA0CCR3 = 128; // 占空比 128/512=0.25
TA0CCTL4 = OUTMOD_7;
TA0CCR4 = 128; // 占空比 128/512=0.25
P1DIR |= 0x04; // P1.2 输出
P1SEL |= 0x04; // P1.2 TA1
P1DIR |= 0x02; // P1.1 输出
P1SEL |= 0x02; // P1.1 TA0
P1DIR |= 0x08; // P1.3 输出
P1SEL |= 0x08; // P1.3 TA2
P1DIR |= 0x20; // P1.5 输出
P1SEL |= 0x20; // P1.5 TA4
P1DIR |= 0x10; // P1.4 输出
P1SEL |= 0x10; // P1.4 TA3
TA1CTL = TASSEL0 + TACLR+MC__UP; // ACLK, 清除 TAR
TA1CCR0 = 512 - 1; // PWM 周期
TA1CCTL1 = OUTMOD_7;
TA1CCR1 = 384; // 占空比 384/512=0.75
P2DIR |= 0x01; // P2.0 输出
P2SEL |= 0x01; // P2.0 TA2
return 0;
}
|
|