MSP430F5529输出PWM波-寄存器

7/5/2022 单片机C/C++

电赛可能会限制使用TI公司的芯片
因此为了不让自己丢掉以前的知识
最好做个笔记,免得忘了就难受。

# MSP430输出PWM波-寄存器

# 开发环境

CCS v10.4.0 (Code Composer Studio 10.4.0)
软件是免费的,随便百度一下就有了

# 硬件

MSP-EXP430F5529LP 即 MSP430F5529 特点
以上! 手册pdf (opens new window)
板子是这个
原理图如下

板载仿真器

# 能输出PWM波的引脚

看了用户手册,发现这些引脚是可以使用CCR输出PWM波的

我试了一 遍,除了被用做灯和按键的P10、P11、P21外都能的
如果不能,可能芯片引脚有点问题,或者外接了其他东西

# 代码部分

寄存器配置的,所以看着代码来懂

#include <msp430.h>

#define  P12   TA0CCR1              //该引脚置一,右边电机正转
#define  P14   TA0CCR3              //该引脚置一,左边电机正转
#define  P13   TA0CCR2              //该引脚置一,左边电机反转
#define  P15   TA0CCR4              //该引脚置一,右边电机反转

void PWM_Init(void)
{
     P1DIR |= BIT3+BIT2+BIT5+BIT4;  //配置P1.2,3,4,5口的为输出口
     P1SEL |= BIT3+BIT2+BIT5+BIT4;  //开启1.2,3,4,5口的io复用,因为要用来输出pwm

     unsigned const PWM_T=2000;     //设置PWM周期参数
     TA0CCR0 =PWM_T;                //设置PWM周期

     TA0CTL= TASSEL_2 + MC_1;       // 选择SMCKL + 选择比较模式
     TA0CCTL1 = OUTMOD_7;           //设置TA0CCR1的PWM的输出模式为7模式 --reset/set模式
     TA0CCTL2 = OUTMOD_7;
     TA0CCTL3 = OUTMOD_7;
     TA0CCTL4 = OUTMOD_7;
}

void main(void)
{
    //关闭看门狗,必须要这一步
    WDTCTL = WDTPW | WDTHOLD;
    PWM_Init();

    /*差速转弯*/
    P12=1000;                       //右边电机得到占空比为1000/2000
    P15=500;                        //左边电机得到的占空比为500/2000
    P13=1000;
    P14=500;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

需要注意的是引脚要对应上CCR编号,比如P12对应CCR1,上图都有

最近更新: 11/24/2024, 10:03:25 AM