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

文章目录[隐藏]

大家好,我是小麦,今天给大家分享一下如何在资源紧张,算力较低的单片机上实现三角函数的算法。

之前发过一篇关于IQMath的文章,这个是ti公司平台上的一个数学运算库,里面封装了很多高效的数学运算方法。

例如在不具备浮点运算器的定点处理器使用定点运算,以前写过一篇Q格式的文章,有简单介绍过这些知识。

那么问题来了,有一个读者朋友的硬件平台无法使用IQMath,但是他要进行一些三角函数的运算,那么该如何自己动手实现呢?

bca2b4ed45a7ab3360cd5c0930b37101.png

下面我们来简单介绍一下整体的思路吧,因为硬件平台的资源比较紧张;

  • RAM比较少;

  • ROM比较少;

  • CPU处理速度比较慢;

所以这里比较常用的方法就是通过空间换时间,预先将sincos的值存储到数组中,需要用的时候,访问数组就可以得到具体的数据。这也就是我们经常会提到的查表法

下面我们来详细介绍一下。

正弦表

这个正弦函数表达式是这样的,

具体如下图所示;

版权声明:本文为CSDN博主「小麦大叔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010632165/article/details/122465884

生成海报
点赞 0

小麦大叔

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

Keil MDK5 STM32F103C8T6开发环境配置

Windows下使用Keil MDK5进行stm32f103c8t6的开发和编译, 配合ST-LINK工具进行烧录, 使用原生(非HAL)的方式. 所需硬件 stm32f103系列开发板 stm32f103c8t6核心板 参数 ARM 32-b

定时器触发STM32 ADC的采样转换示例

开发板:STM32F446 Nucleo开发板IDE:  keil MDK初始化配置工具:stm32cubeMx例程内容:通过定时器触发ADC规则通道及注入通道的模数转换工作。下面基于STM32CubeMx进行些必要

存储器Flash页、扇区、块的区别

关注星标公众号,不错过精彩内容作者 | strongerHuang微信公众号 | 嵌入式专栏大家都知道Flash是用于存储数据的存储器,但很多读者看到页(Page)、扇区(Sector)、块(Block)等这些单位时