打印
[STM32F1]

CAN,电机控制,中断

[复制链接]
1040|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
牧心|  楼主 | 2016-3-24 22:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟基于stm32通过CAN总线控制多个直流电机,通过不断给电机发速度指令(速度序列已经有了),让电机位置拟合某条直线,目前速度指令发送周期为100ms,在中断中发送,而我又想采集电机位置信号为下一时刻速度做修正,该怎么做才好?采集信号的指令应该放在哪里比较合适?
沙发
huangcunxiake| | 2016-3-25 11:19 | 只看该作者
也在中断里实现啊,你应该是用的定时器中断吧,同样发送完数据就采集。或者通过IO中断也行。

使用特权

评论回复
板凳
牧心|  楼主 | 2016-3-25 11:21 | 只看该作者
huangcunxiake 发表于 2016-3-25 11:19
也在中断里实现啊,你应该是用的定时器中断吧,同样发送完数据就采集。或者通过IO中断也行。 ...

一下子发送了那么多电机的查询指令,虽然驱动器有返回指令,但会在FIFO中溢出,最终接收到的只有三条指令吧

使用特权

评论回复
地板
huangcunxiake| | 2016-3-25 11:27 | 只看该作者
牧心 发表于 2016-3-25 11:21
一下子发送了那么多电机的查询指令,虽然驱动器有返回指令,但会在FIFO中溢出,最终接收到的只有三条指令 ...

应该不会溢出吧。怎么可能只接收3条就完了呢。

使用特权

评论回复
5
牧心|  楼主 | 2016-3-25 11:37 | 只看该作者
huangcunxiake 发表于 2016-3-25 11:27
应该不会溢出吧。怎么可能只接收3条就完了呢。

邮箱深度不是三级吗,中断中发送二十多个电机取位置指令,返回来那么多位置报文,但没有及时读取,就溢出了,最后去读的时候只剩下三条了

使用特权

评论回复
6
huangcunxiake| | 2016-3-25 11:44 | 只看该作者
牧心 发表于 2016-3-25 11:37
邮箱深度不是三级吗,中断中发送二十多个电机取位置指令,返回来那么多位置报文,但没有及时读取,就溢出 ...

好吧,这个没用过,不是很了解,等高手来看看有没有用过这种。

使用特权

评论回复
7
icefox225| | 2016-3-25 21:46 | 只看该作者
中断发20多条,为什么要这么做

使用特权

评论回复
8
wang1216| | 2016-3-27 22:25 | 只看该作者
100ms太慢,10ms差不多

使用特权

评论回复
9
FireRiver9| | 2016-3-28 11:50 | 只看该作者
定时器中断不能实现吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝