在嵌入式领域,三角函数运算比较影响效率,可以使用查表法提高效率

//1, 正切函数值表,90度时取值1000,这个还是浮点运算的,还是不够
const double TAN[91] = {
0,0.017,0.035,0.052,0.070,0.087,0.105,0.123,0.141,0.158,0.176,0.194,
0.213,0.231,0.249,0.268,0.287,0.306,0.325,0.344,0.364,0.384,0.404,
0.424,0.445,0.466,0.488,0.510,0.532,0.554,0.577,0.601,0.625,0.649,
0.675,0.700,0.727,0.754,0.781,0.810,0.839,0.869,0.900,0.933,0.966,
1.000,1.036,1.072,1.111,1.150,1.192,1.235,1.280,1.327,1.376,1.428,
1.483,1.540,1.600,1.664,1.732,1.804,1.881,1.963,2.050,2.145,2.246,
2.356,2.475,2.605,2.747,2.904,3.078,3.271,3.487,3.732,4.011,4.331,
4.705,5.145,5.671,6.314,7.115,8.144,9.514,11.430,14.300,19.081,28.635,
57.286,1000
};
// 这个使用位移15位,把浮点运行换成整数乘法和位移,对一个角度 angle(角度,不是弧度) 有
y = x * ITAN[angle] >> 15;
// 为了提高精度,可以加大位移数,本处使用的是: ITAN[angle] = TAN[angle] * 2的15次幂。90度时的无穷大用一个大数代替
const int ITAN[91] =
{568,1136,1705,2275,2847,3420,3995,4573,5153,5737,6324,6916,7512,8112,8718,9330,
9947,10572,11203,11842,12489,13145,13811,14486,15172,15869,16578,17300,18035,18785,
19550,20331,21129,21946,22782,23639,24518,25420,26347,27301,28283,29296,30340,31420,
32536,33692,34891,36135,37428,38775,40179,41644,43177,44782,46466,48237,50101,52068,
54149,56354,58696,61191,63855,66709,69774,73077,76650,80529,84759,89392,94491,100135,
106420,113466,121425,130494,140928,153069,167382,184520,205423,231504,264982,309556,371883,
465278,620809,931674,1863846,1863846
};

--------------------------------------------------------------------
户外低价正品[size=medium][color=blue][b]jfhw360.taobao.com[/b][/color][/size]

正切函数的查表法实现相关推荐

  1. 单片机c语言NTC温度查表程序,STM32查表法读NTC值并显示温度

    STM32查表法读NTC值并显示温度 #include "stm32f10x.h"Y'+F0IZ+ #include "delay.h"pU'`9fLi_ #i ...

  2. crc16modbus查表法_查表法计算CRC16校验值

    /******************************************************************************* * Copyright (c) 201 ...

  3. FPGA之道(63)“万能”的查表法

    文章目录 前言 "万能"的查表法 正弦波发生器示例 前言 又好几天没更新了,这就是又停止了读书的节奏,终于在毕业论文可以稍微舒缓下来的时候更新了博客,完成一个系列,读完一本书等等都 ...

  4. 查表法实现反正切_关于python实现CRC32的应用和总结

    关于python实现CRC32的应用和总结 目前使用的Crc计算包含Crc32和Crc32mpeg2两种计算方式. 循环冗余检验 CRC 差错检测技术能够证明数据是完整的,是无差错的(只是非常近似的认 ...

  5. 空间换时间,查表法的经典例子

    前言 上一篇分享了:C语言精华知识:表驱动法编程实践 这一篇再分享一个查表法经典的例子. 我们怎么衡量一个函数/代码块/算法的优劣呢?这需要从多个角度看待.本篇笔记我们先不考虑代码可读性.规范性.可移 ...

  6. crc16码表的使用_查表法计算CRC16校验值

    CRC16是单片机程序中常用的一种校验算法.依据所采用多项式的不同,得到的结果也不相同.常用的多项式有CRC-16/IBM和CRC-16/CCITT等.本文代码采用的多项式为CRC-16/IBM: X ...

  7. FPGA如何利用查表法得到某角度所对应的正弦值、余弦值

    FPGA如何利用查表法得到某角度所对应的正弦值.余弦值 1 实现思路 2 具体实现步骤 2.1 MATLAB生成sin.coe文件和cos.coe文件 2.2 将sin.coe和cos.coe文件分别 ...

  8. 步进电机S(SigMoid)曲线加减速【查表法】

    首先感谢以下博客的博主提供的参考公式:https://blog.csdn.net/pengzhihui2012/article/details/52228822?locationNum=6 首先在本设 ...

  9. STM32 ADC NTC热敏电阻二分(折半)查表法实现测温功能

    本文主要描述 - STM32 ADC NTC热敏电阻二分(折半)查表法测温功能的思路和代码实现 NTC的相关属性:R25=10K±3% B25/50=4100K±3% 10K上拉 STM32 ADC实 ...

最新文章

  1. oracle 24365,深入解析:DBA_OBJECTS中的OBJECT_ID与DATA_OBJECT_ID的区别
  2. Android3个页面跳转代码,从零开始Android组件化改造(三) - 页面跳转与路由组件...
  3. 运行wordcount.java_运行hadoop wordcount程序
  4. 程序员找工作那点事儿
  5. matplotlib调节colorbar的大小
  6. 没有工作经验找it_校招和社招有什么区别?没有工作经验,如何找工作?
  7. 互联网晚报 | 2月8日 星期二 | 上海微电子交付中国首台光刻机;广东诞生全国首个万亿工业强区;东芝宣布分拆为两家公司...
  8. vscode写python_vscode如何编写python?
  9. Win-MASM64汇编语言-CMPXCHG指令
  10. 神经网络不胜语__M-P模型似可寻
  11. 浏览器 pad android,360安全浏览器平板电脑Pad专用版-360安全浏览器HD 安卓版v1.1.0-PC6安卓网...
  12. 基于C语言的个人信息管理系统
  13. selenium python怎么断言_请问selenium python 断言怎么写?
  14. 站内信通知数据表设计
  15. 满满的骚操作,通用流行框架大全
  16. STM32实现俄罗斯方块
  17. su组件在什么窗口_su家具组件 SU中的组件与群组有什么不同
  18. 找出游戏的获胜者(java)
  19. 超实数探索浪潮波及中国数学界
  20. js 实现一个简单的存钱/取钱/查询/退出等操作的ATM功能.

热门文章

  1. C#控制摄像头实现画面实时播放
  2. VS2019 内存占用高
  3. bootstrap 模态窗口 第二次无法加载js 的解决办法
  4. ES6语法(最详细文章)
  5. 一文了解常用的微波传输线(二):矩形波导、集成波导、圆波导、矩圆转换器仿真
  6. 安装IPTV后网口不够用,如何将网线一分为二
  7. WSUS离线补丁更新
  8. WRF模式|基本模式与流程
  9. 运筹系列16:routing模型之VRP问题
  10. “S“型曲线加减速在42步进电机的位置控制和速度控制中的交叉应用