我试图找到一种有效的方法来计算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溢出。