注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
lindandaixu的个人空间 https://home.eeworld.com.cn/space-uid-532914.html [收藏] [复制] [分享] [RSS]
日志

430控制舵机

已有 440 次阅读2014-3-24 21:45

430用pwm波控制舵机,舵机总是一下一下连续旋转,如何用pwm波使舵机转过某一特定的角度就停下来,以及如何使舵机反转,请各位前辈指点

#include<msp430x14x.h>

#define uint unsigned int
void init_clk(void)
{
   unsigned int i;
   BCSCTL1&=~XT2OFF;
   do
   {
      IFG1&=~OFIFG;   
      for(i=0xff;i>0;i--);
   }
   while((IFG1&OFIFG));
   BCSCTL2=0X00;
   BCSCTL2=SELS+SELM_3;
}

void init_pwm(void)
{
   
    P1SEL |= BIT2 + BIT3 ;     //选择 p1.2-TA1  ,P1.3-TA2  作为PWM输出 第二功能
    P1DIR |= BIT2 + BIT3 ;
    TACCR0 = 20000;    //PWM信号频率10KHZ
    TACCTL1 = OUTMOD_7;
    TACCR1 =1000;    // 占空比1:1
    TACCTL2 = OUTMOD_7;
    TACCR2 = 1000;  
    TACTL=TASSEL_1 +MC_1+DIVS_3;               
    _BIS_SR(CPUOFF+GIE);
}
void main(void)
{
    WDTCTL=WDTPW+WDTHOLD;
    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;  
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;
    init_clk();
    init_pwm();
    while(1);
   
}

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章