×
嵌入式 > 技术百科 > 详情

MSP430 PWM

发布时间:2020-06-02 发布时间:
|
就MSP430F149而言,内部有定时器A和B,称为TimerA3,TimerB7,因此,可以有8个PWM输出,即TA1,TA2,TB1,TB2,TB3,TB4,TB5,TB6,它们实现PWM占空比的调整和控制,输出的是希望的PWM信号。另外两个TA0,TB0用于PWM周期(或者称为频率)控制,不能输出PWM信号,这是由430的定时器工作模式所决定的。
PWM输出对应的引脚(MSP430X14X系列):

    TA0:P1.1,P1.5,P2.2,P2.7

    TA1:P1.2,P1.6,P2.3

    TA2:P1.3,P1.7,P2.4

    TB0:P4.0

    TB1:P4.1

    TB2:P4.2

    TB3:P4.3

    TB4:P4.4

    TB5:P4.5

    TB6:P4.6

 

例程:


#include "msp430x14x.h"

void main(void)

    WDTCTL = WDTPW +WDTHOLD; 

    TACTL = TASSEL0 + TACLR;       /*ACLK, 清除 TAR*/

    CCTL0=0x00;

    CCTL1=0x00;

    CCR0 = 512-1;                 /*PWM周期*/ 

    CCTL1 = OUTMOD_7;                     

    CCR1 = 384;                   /*占空比  384/512=0.75*/

    P2DIR |= BIT3;                /* P2.0 输出*/

    P2SEL |= BIT3;                /* P2.0 TA1 */

    TACTL |= MC0;           /*Timer_A 增计数模式(这句要独立,不能TACTL = TASSEL0 + TACLR+MC_0;)*/

    P1DIR&=~BIT0;          /*按键脚设置为输入*/

    for (;;)                            

    {

       if((P1IN&0x01)==0)

       {

            while((P1IN&0x01)==0);

            CCR1+=10;

            if(CCR1>511)

            {

                CCR1=0;

            }

        }

    }

}

 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
实时控制.安全.如何加速实现未来工厂落地?