新手入门
- 积分
- 32
- 金钱
- 32
- 注册时间
- 2016-5-14
- 在线时间
- 19 小时
|
网上下载别人的程序 void Speed_Calculate(void){
speed_mr=TIM_GetCounter(TIM2)-0x7fff;
speed_ml=TIM_GetCounter(TIM3)-0x7fff; //读取编码器寄存器计数值,并减去中间值,得到速度矢量
TIM_SetCounter(TIM2, 0x7fff);
TIM_SetCounter(TIM3, 0x7fff); //重置编码器计数值
speed_r_l =(speed_mr + speed_ml)*0.5;//电机转速!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
speed *= 0.7; //电机转速滤波1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//一阶低通滤波!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
speed += speed_r_l*0.3; //!!!!一阶低通滤波!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
不明白编码器重新置数怎么不是0,而是0x7fff ,,,后边那两个滤波又是什么意思 0.7? 0.3?是怎么确定的,,,第一次发帖不知措辞是否合适,还请见谅,,,万分感谢
|
|