我试图找到一种有效的方法来计算AVR上的逆(或近似)。 我正在尝试计算步进电机的脉冲周期,以便可以线性地改变速度。周期与速度(p = K/v)的倒数成正比,但我想不出一种快速计算此速度的好方法。 我的公式是 p = 202/v + 298; // p in us; v varies from 1->100 在Arduino上测试时,似乎完全忽略了该部分,而将其p固定为固定298(尽管在avr-gcc中可能会有所不同)。我还尝试过对v循环求和,直到超过202,然后对循环计数,但这非常慢。 我可以生成一个查找表并将其存储在闪存中,但是我想知道是否还有另一种方法。 编辑:也许标题应该是“有效划分” ... 更新:正如pingswept指出的那样,我将周期映射到速度的公式不正确。但是主要的问题是除法运算。 编辑2:在进一步调查中,除法在arduino上起作用,问题是由于上面的公式不正确以及其他地方的int溢出。
在回顾我的数据记录项目的可能方法时,我发现“ C / C ++中的实用UML状态图”一书对于与Arduino进行更认真的工作非常有趣。QP是面向嵌入式系统的基于状态机的超轻型开源框架家族,它们在http://www.state-machine.com/上为其框架(GNU GPL2)分发代码和端口,其中它们具有一个使用WinAVR / Gnu C ++工具集的AVR和AVR mega的端口。 尽管特定于芯片的接头连接器合适,但是否有人创建了板BSP文件或对这些框架有任何经验?我只是从这本书开始,所以任何评论都将不胜感激。