单片机如何能运行如飞?一种高效实现数学函数的方式!

💡 原文中文,约7800字,阅读约需19分钟。
📝

内容提要

本文介绍了在资源紧张、算力较低的单片机上如何实现三角函数的算法。通过查表法,将sin和cos的值存储到数组中,需要用的时候,访问数组即可得到具体的数据。文章还介绍了具体的实现方法和Q格式的知识。

🎯

关键要点

  • 在资源紧张、算力较低的单片机上实现三角函数算法的思路。
  • 使用查表法将sin和cos的值存储到数组中以节省计算资源。
  • 正弦函数的波形分析,利用四分之一周期的数据表示整个周期。
  • 量纲统一,使用归一化形式表示sin和cos的值。
  • 避免使用浮点运算、除法和乘法,提高运算效率。
  • Q格式的知识用于定点运算,使用左移和右移代替乘法和除法。
  • 将[0, 2π]细分为1024等份,仅选择前四分之一周期的数据。
  • 将浮点数据转换为Q1.15格式以适应定点运算。
  • 代码实现部分参考ST的mcsdk,分析每个部分的作用。
  • 通过有符号和无符号整数的比较,理解Q格式的数值范围。
  • 实现正余弦函数的具体算法,利用象限映射关系计算sin和cos值。
  • 总结了正余弦函数的实现方法,并鼓励读者提出更好的方案。
🏷️

标签

➡️

继续阅读