OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3430|回复: 0

新手正在学习stm32 想做平衡车

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
32
金钱
32
注册时间
2016-5-14
在线时间
19 小时
发表于 2016-7-20 15:23:15 | 显示全部楼层 |阅读模式
网上下载别人的程序 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?是怎么确定的,,,第一次发帖不知措辞是否合适,还请见谅,,,万分感谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 22:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表