登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

谦杰

宁静致远

 
 
 

日志

 
 

AVR 舵机驱动程序  

2011-04-04 22:12:13|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

//几年前曾发过一个关于舵机的驱动程序 貌似看的人很多

//为了更好的和大家交流 我把最近在AVR ATmega128上写的舵机驱动程序晒晒 请大家多多指教

AVR 舵机驱动程序 - Jeary - 谦杰

 

/*==============================================================================
    功能:舵机驱动程序
注意事项:
提示说明:PE3-OC3A PE4-OC3B PE5-OC3C
          OC3A: 50Hz  OC3B: OC3C: 
==============================================================================*/
#include  <iom128.h>
#include  <ina90.h>
/***************************************************************************
* 函数功能:Timer3_init函数*
* 入口参数:
* 出口参数:
***************************************************************************/
void Timer3_init(void)
{
  PORTE  |=0x38;//PE3-5 out
  DDRE   |=0x38;
  //T3
  TCCR3A |= 0xa8;   //A B C 都是相位修正及相频修正PWM模式 升序记数时比较匹配将清零
  TCCR3B |= 0x13;   //N=64分频
  TCCR3C=0x00; 
  ICR3=1152;     //f=fclk/(2*N*TOP)=50Hz(20ms),TOP=ICR1,fclk=7.3728M.
  TCNT3=0x0000;
  OCR3A=0x0000;
  OCR3B=0x0000;
  OCR3C=0x0000;
}
/***************************************************************************
* 函数功能:PWM_change函数*
* 入口参数:OCR3x,舵机ID;value 角度值,0-180/10  步长为10度
* 提示说明:value值的bit6-7都为1,作为命令标识
***************************************************************************/
void PWM3_change(unsigned int OCR3x,unsigned char value)
{
  //if((value & 0xc0)==0xc0)//判断是否是舵机控制命令
  //{
    //value=(value-0xc0)*10;
    switch(OCR3x)
    {
    case 0x01:OCR3A=value*58/90+29;//修改A舵机角度值
           break;
    case 0x02:OCR3B=value*58/90+29;//修改B舵机角度值
    break;
    case 0x03:OCR3C=value*58/90+29;//修改C舵机角度值
           break;
    case 0x04:OCR3A=value*58/90+29;//修改A和B舵机角度值
           OCR3B=value*58/90+29;
           break;
    case 0x05:OCR3A=value*58/90+29;//修改A B和C舵机角度值
           OCR3B=value*58/90+29;
           OCR3C=value*58/90+29;
           break;
    default: break;
    }
  //}
}

  评论这张
 
阅读(1923)| 评论(1)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018