[MSP-EXP430F5529LP] msp4305592实现多路PWM输出

[复制链接]

2

主题

2

帖子

61

积分

一粒轻沙

Rank: 1

积分
61
楼主
查看: 2914回复: 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;
}

快速回复 返回顶部 返回列表