ATtiny:不支持乘法?


10

的确ATtiny AVR没有硬件支持乘法?当我在代码中执行乘法时,它似乎工作正常。我还包括math.h并进行了sin()和cos()的计算。有人知道吗,这些计算是否会给我带来800个周期的巨额罚款?


使用查找表进行触发,以及线性插值(如果您想要更好的分辨率)(具有可容忍的误差)
vicatcu 2013年

Answers:


14

ATtiny没有硬件乘法器,但是软件乘法并没有您所暗示的那么昂贵。有关一些优化的乘法和除法例程,请参见AVR200应用笔记相关代码

使用查找表可以加速正弦和余弦计算,从而有效地为处理器周期交换内存空间。但是,正如@DaveTweed正确指出的那样,在软件中通过算法逼近正弦和余弦将使周期计数更接近您所担心的范围。


6
多项式逼近sin()cos()通常包括几个(3-5)次乘法,加多倍增加/减去,范围折叠等,所以每函数调用800倍的时钟不不现实的。
Dave Tweed

@DaveTweed:谢谢,很好。编辑以澄清。
Scott Winder
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.