完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
最近,在做智能小车,用STM32+定时器+编码器来铺货方波,但是考虑到软件程序抓取的方波老是和示波器上的方波不一样,因为定时器频率的因素吧!
我老大给我提了一个这样的思路,不用定时器来测小车两轮的速度。因为示波器捕获的方波(光栅格)是一个个,很有规律的形状,那么用GPIO(应该是外设中断)进入中断后,判断上升/下降沿来记录方波的个数 举个例子: 进入中断,然后上升沿触发-(延时2.5ms)-下降沿触发,计数+1,就这样。比如1S内,左轮子计了100个,而右轮子计了96个,那么左边的轮子就比右边的轮子速度快。从而来调节两轮速度,使之平衡走直线。我感觉,很简单,非常好,但是就是心里面不不踏实,因为好像没有网友这样做的,这样的话,后面算法好用吗? 再说下我的思路(就是在网上找的),你们看看对不对。 ①分别配置两个tiM(也可以是一个)对应两个直流电机,配置什么的就不说了,这样的帖子很多。 ②然后就是①对应的定时器中断,TIM时钟频率都设置成一样的,10ms一次。那么在中断里每隔10ms TIM_GetCounter(TIMx)捕获一次方波的个数,然后根据这个,应用程序轮询来获取速度。 ③一种思路是可以和②一样,另一种是用同一个定时器,在中断里加限制条件来TIM_GetCounter(TIMx)获一次方波的个数,然后求出速度。 ④最后用相关的算法,来实时调节两轮子,使之速度相等,此为后话。 现在我不确定的是TIM_GetCounter(TIMx),一次是不是捕获的方波个数,也就是说10ms内捕获这么多方波。 没搞过硬件的人,真的不懂。 |
|
相关推荐
6个回答
|
|
|
TIM_GetCounter 是获得TIMx计数器的值
|
|
|
|
|
|
|
|
|
|
|
|
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦来了
|
|
|
|
|
|
|
|
|
|
|
|
xuexue学习一下,支持一下,谢谢分享。
|
|
|
|
|
|
dsdfdff
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2810 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2420 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2288 浏览 0 评论
2404 浏览 1 评论
1643 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 05:21 , Processed in 0.840758 second(s), Total 86, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2920