sin
和cos
函数在嵌入式系统上的运行速度很慢,需要大量资源。如何以更省资源、更快速的方式计算sin
和cos
函数?
sin
和cos
函数在嵌入式系统上的运行速度很慢,需要大量资源。如何以更省资源、更快速的方式计算sin
和cos
函数?
请注意,使用查找表时,您可以通过限制域来优化事物,例如将角度表示为无符号字符,使您在圆周周围只有256个步骤,但也具有非常紧凑的表格。类似的事情也可以用于值,比如使用定点数。
我有点晚了,但是我想分享一个使用查找表(包括表生成器)的现成有效解决方案:DFTrig。
DFTrig由两部分组成:
tablegen
(用Java编写,但并不重要)接收多个选项并生成C代码(const结构与查找表)tablegen
生成的查找表一起工作的小型C模块。当然,查找表仅包含最少量的信息:单个象限的正弦值,即[0, 90]
度。这足以计算任何角度的正弦/余弦。
行为非常可定制。您可以指定:
因此,根据您的需求,您可以:
我在我的嵌入式项目中使用它,效果很好。