最近在学习MSP430f5529。分享一下如何控制舵机:
硬件部分:
用的舵机时SG90,比较经典的舵机
硬件接线:
红线 : 3.3v/ 5v
黑 / 棕线 : GND
黄线 : 信号线(本代码接脚p2.4)
软件部分:
采用TA2定时器,TA2CCR0设置pwm周期,TA2CCTL1设置高电平长度。
代码如下:
#include <msp430F5529.h>
#define p2_3 TA2CCR1//采用TA2定时器
void initduoji()
{
P2DIR |=BIT4; //配置P2.4口为输出口
P2SEL |=BIT4; //开启P2.4口的io复用输出pwm
unsigned const PWM=21500;//设置PWM周期参数
TA2CCR0 = PWM; //设置PWM周期
TA2CTL=TASSEL__SMCLK+MC_1; //设置定时器A2采用SMCLK时钟源和增计数模式,580us
TA2CCTL1 = OUTMOD_6; //设置TA2CCR1的PWM的输出模式为7模式
}
void duoji(int i)
{
p2_3=537.5*(i/45+1);
}
int main(void)
{
WDTCTL = WDTPW | WDTHOLD;//关闭看门狗
initduoji();//初始化舵机
while(1){duoji(45);//在函数里写入想要偏转的角度
}
}
使用时,在主函数中引用duoji()函数,在里面写入想要偏转的角度即可。
希望可以帮到你。感谢关注。本人初学,如有不足,请多包含。