msp430f149控制步进电机编程实例

2019-07-20 16:15发布

#include <msp430x14x.h>   
typedef    unsigned int  uint;  
typedef   unsigned char uchar;   
#define   PWM   BIT2   
void int_clk()   
{   
    uchar i;   
    BCSCTL1&=~XT2OFF;  //打开XT振荡器   
    BCSCTL2|=SELM1+SELS;//MCLK 8M and SMCLK 1M     
    do   
    {   
        IFG1 &= ~OFIFG;                 //清除振荡错误标志   
        for(i = 0; i < 100; i++)   
      _NOP();           //延时等待   
        }   
    while ((IFG1 & OFIFG) != 0);    //如果标志为1继续循环等待   
    IFG1&=~OFIFG;   
}   
void int_pwm()   
{   
  P1SEL|=PWM;//选择P12作为PWM输出   
  P1DIR|=PWM;     
  TACCR0=800;//PWM信号周期10KHz   
  TACCR1=400;//占空比1:1   
  TACCTL1=OUTMOD0+OUTMOD1+OUTMOD2; //输出模式选择   
  TACTL|=TASSEL1+MC0;   
}   
void main()   
{   
  WDTCTL=WDTPW+WDTHOLD;//关看门狗   
  int_clk();  //初始化时钟   
  int_pwm();  //初始化PWM   
  while(1);//结束   
}
本例程是以msp430f149单片机的PWM控制步进电机的转动,以P1.2口为PWM输出端口,PWM信号周期为10KHZ,占空比为1:1。  
0条回答

一周热门 更多>