我试图找到一种有效的方法来计算 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:在进一步调查中,divide 正在处理 arduino,问题是由于上面的公式不正确和其他地方的 int 溢出。