打印

求一个msp430控制舵机控制板的程序

[复制链接]
2654|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小灰灰001|  楼主 | 2014-8-25 17:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这几天都在做这个  #include <msp430x14x.h>
#include "Config.h"

//*************************************************************************
//               MSP430串口初始化
//*************************************************************************
void UART_Init()
{
  U0CTL|=SWRST;               //复位SWRST
  U0CTL|=CHAR;                //8位数据模式
  U0TCTL|=SSEL1;              //SMCLK为串口时钟
  U0BR1=baud_h;               //BRCLK=8MHZ,Baud=BRCLK/N
  U0BR0=baud_l;               //N=UBR+(UxMCTL)/8
  U0MCTL=0x00;                //微调寄存器为0,波特率9600bps
  ME1|=UTXE0;                 //UART1发送使能
  ME1|=URXE0;                 //UART1接收使能
  U0CTL&=~SWRST;
  IE1|=URXIE0;                //接收中断使能位
  //IE1|=UTXIE0;
  P3SEL|= BIT4;               //设置IO口为普通I/O模式
  P3DIR|= BIT4;               //设置IO口方向为输出
  P3SEL|= BIT5;
}
char *s={"#3P1151T1000\r\n"};
char *ss={"#4P1151T1000\r\n"};
char *sss={"#3P551T1000\r\n"};

//*************************************************************************
//              串口0发送数据函数
//*************************************************************************

void Send_Byte(char data)
{
  while((IFG1&UTXIFG0)==0);          //发送寄存器空的时候发送数据
    U0TXBUF=data;
}
void Print_Str(char *s)  //串口发送字符串函数
{
    while(*s != '\0')
    {
        Send_Byte(*s++);
    }
}

//*************************************************************************
//               处理来自串口 0 的接收中断
//*************************************************************************

#pragma vector=UART0RX_VECTOR
__interrupt void UART0_RX_ISR(void)
{
  uchar data;
  data=U0RXBUF;                       //接收到的数据存起来
  Send_Byte(data);                   //将接收到的数据再发送出去
  Print_Str(s);
}

//*************************************************************************
//            处理来自串口 0 的发送中断,预留
//*************************************************************************

#pragma vector=UART0TX_VECTOR
__interrupt void UART0_TX_ISR(void)
{
  //Print_Str("#3P1151T1000\r\n");

}

//*************************************************************************
//           主函数
//*************************************************************************
void main(void)
{
  WDT_Init();                         //看门狗设置
  Clock_Init();                       //系统时钟设置
  UART_Init();                        //串口设置初始化
  _EINT();                            //开中断
  while(1)                            //无限循环
    {  
      
      Print_Str(s);
      delay_ms(1500);
      Print_Str(ss);
      delay_ms(1500);
      Print_Str(sss);
      delay_ms(1500);
      Print_Str("#4P851T1000\r\n");
      delay_ms(1500);
    }
}
可是 舵机就是不动   好伤心

相关帖子

沙发
dirtwillfly| | 2014-8-25 20:49 | 只看该作者
看过驱动舵机的io有没有波形?

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
小灰灰001 + 1 赞一个!
板凳
firstblood| | 2014-8-25 22:25 | 只看该作者
用PWM进行控制的吧还是?

使用特权

评论回复
地板
zh113214| | 2014-8-25 23:13 | 只看该作者
感觉挺简单的,不过这种方式控制的PWM信号应该不错,,。

使用特权

评论回复
5
小灰灰001|  楼主 | 2014-8-26 09:38 | 只看该作者
有波形   舵机就是不动   真伤心

使用特权

评论回复
6
周董| | 2014-8-27 22:59 | 只看该作者
串口0接收中断是不是有问题啊??

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
小灰灰001 + 1 赞一个!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

0

粉丝