智能车制作

标题: 【在线等】SD5舵机反映较慢问题如何解决 [打印本页]

作者: 隐形人    时间: 2012-4-4 13:36
标题: 【在线等】SD5舵机反映较慢问题如何解决
在赛道上调试的时候发现,舵机反映速度不够快,导致有些弯道无法及时通过而冲出赛道。
求教大神如何解决这种问题!在线等,thx~
舵机PWM初始化如下:
void SERVO_Initial()  
{   
DDRP|=0x20;          //设置PP5为输出
PWMPRCLK = 0;    //clock A不分频,即clock A=busclok                  
PWMSCLA = 0x10;  //对clock SA进行分频            
PWMCLK_PCLK5 = 1;//选择clock SA作时钟源
PWMPOL_PPOL5=1; //先输出高电平,计数到DTY时,反转电平
PWMCTL_CON45=1; //0和1联合成16位PWM
PWMCAE_CAE5=0;   //选择输出模式为左对齐输出模式   
PWMPER45=20000;//频率设置   
PWMCNT45=0;   //计数器清零   
PWMDTY45=17140; //舵机中心位置 占空比               
PWME_PWME5=1;     // Enable  PWM
}  

控制的时候直接调用的函数:
SERVO_SetDutyUS(x);//x对应不同转角

采用的是PWM45通道级联,这是PE上的配置:
[attach]22064[/attach]

作者: 隐形人    时间: 2012-4-4 13:38
PS:已经超频到64M了~
作者: 恋May    时间: 2012-4-4 13:39
提高前瞻,提前预判,减少车重,降低负载。
作者: 隐形人    时间: 2012-4-4 13:42
恋May 发表于 2012-4-4 13:39
提高前瞻,提前预判,减少车重,降低负载。

有没有软件上的实现方式?您看我的代码以及配置有问题吗?
前瞻由于激光阵列的问题现在暂时无法提高。
舵机的反应真心有点慢~

作者: 隐形人    时间: 2012-4-4 13:45
恋May 发表于 2012-4-4 13:39
提高前瞻,提前预判,减少车重,降低负载。

我采用的就是20ms的周期了,改成300HZ理论上是不是要快一点?
我看前面有人发帖说300HZ只是比50HZ精度有提高,反应速度提不上去?
300HZ怎么改?我按我的思路,让PWMPER45=3333,但是找不到可以控制舵机的范围~

作者: 恋May    时间: 2012-4-4 14:05
PWMPER=你采用的周期/频率。
作者: 恋May    时间: 2012-4-4 14:06
你设定PWMPER值的时候 就默认设了频率了。
作者: 隐形人    时间: 2012-4-4 14:22
恋May 发表于 2012-4-4 14:06
你设定PWMPER值的时候 就默认设了频率了。

可这只是在初始化函数里面,初始化函数我们只调用一次的。
我看到有人没有这段初始化函数,默认使用的是PE下生成的函数。
调用的时候直接用:
SERVO_SetDutyUS(x);//x对应不同转角

舵机速度也要远快于我们的舵机。这是怎么回事?


作者: 恋May    时间: 2012-4-4 14:27
隐形人 发表于 2012-4-4 14:22
可这只是在初始化函数里面,初始化函数我们只调用一次的。
我看到有人没有这段初始化函数,默认使用的是 ...

"初始化函数我们只调用一次的。"

你对初始化 的理解 是什么样子的- -。。
它一定义之后 就一直 存在了,而且决定了。设置寄存器,建立一个环境模式。

你说的 PE什么的 肯定 也是 定义过的。

作者: 隐形人    时间: 2012-4-4 14:32
恋May 发表于 2012-4-4 14:06
你设定PWMPER值的时候 就默认设了频率了。

我认为这个函数和普通的函数没有什么区别,调用一次就确定了采用哪个通道时钟等等。但是具体采用多大的占空比什么的还是后面调用setduty()那个函数,难道我一直理解的都有错误?
PS:初始化函数并没有在while(1)循环里面,只是在开头的时候调用。
PE就是Codewarrior下面的ProcessorExpert啊~

作者: 恋May    时间: 2012-4-4 14:37
隐形人 发表于 2012-4-4 14:32
我认为这个函数和普通的函数没有什么区别,调用一次就确定了采用哪个通道时钟等等。但是具体采用多大的占 ...

你对初始化的理解不是太多= =。
这里的PWM初始化,是设置了单片机里面的各大寄存器,你后来每次用到改占空比的 只是 改了PWMDTY的值,但是周期全部都定下来过了,你找本S12的书看看PWM各个寄存器的意义,最好自己写出适合自己的初始化程序。呵呵,有遇到问题我们可以相互交流,主要还是自己

作者: 隐形人    时间: 2012-4-4 14:43
恋May 发表于 2012-4-4 14:37
你对初始化的理解不是太多= =。
这里的PWM初始化,是设置了单片机里面的各大寄存器,你后来每次用到改占 ...

理解是有点模糊,但是影响舵机相应速度是初始化函数的问题么?还是配置的问题?现在这个概念很模糊啊~

作者: 恋May    时间: 2012-4-4 15:00
隐形人 发表于 2012-4-4 14:43
理解是有点模糊,但是影响舵机相应速度是初始化函数的问题么?还是配置的问题?现在这个概念很模糊啊~

响应速度 和很多都有关系,和机械上的关系也很大,像3010和输入电压也有关系。和频率也有关系,舵机频率就在初始化里面调节的。

作者: 一毛钱~~~~~~    时间: 2012-4-20 15:47

作者: wxstar1    时间: 2012-5-1 20:16

作者: man蝶瘦瘦    时间: 2012-5-9 17:13
从软件入手不如从机械上入手  可以把电压调大那么一点点   个人观点
作者: songqiang    时间: 2012-5-9 21:18
电压没调过,建议楼主还是别在SD5上面进行平滑滤波,即便使用也要非常小的数组。还有就是提高前瞻,提前预判弯道!!!
作者: mzsly    时间: 2012-5-11 17:46
数字舵机反应速度跟电压 没太大关系。。。
作者: 雨子    时间: 2012-11-12 19:36





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2