以下代码来源于SimpleFOC,可以提高嵌入式芯片计算sincos的速度:

#include "stdio.h"#define _PI_2  1.57079632679
#define _PI    3.14159265359
#define _3PI_2 4.71238898038
#define _2PI   6.28318530718#define _round(x) ((x) >= 0 ? (long)((x) + 0.5) : (long)((x) - 0.5))const int sine_array[200] = {0, 79, 158, 237, 316, 395, 473, 552, 631, 710,789, 867, 946, 1024, 1103, 1181, 1260, 1338, 1416, 1494,1572, 1650, 1728, 1806, 1883, 1961, 2038, 2115, 2192, 2269,2346, 2423, 2499, 2575, 2652, 2728, 2804, 2879, 2955, 3030,3105, 3180, 3255, 3329, 3404, 3478, 3552, 3625, 3699, 3772,3845, 3918, 3990, 4063, 4135, 4206, 4278, 4349, 4420, 4491,4561, 4631, 4701, 4770, 4840, 4909, 4977, 5046, 5113, 5181,5249, 5316, 5382, 5449, 5515, 5580, 5646, 5711, 5775, 5839,5903, 5967, 6030, 6093, 6155, 6217, 6279, 6340, 6401, 6461,6521, 6581, 6640, 6699, 6758, 6815, 6873, 6930, 6987, 7043,7099, 7154, 7209, 7264, 7318, 7371, 7424, 7477, 7529, 7581,7632, 7683, 7733, 7783, 7832, 7881, 7930, 7977, 8025, 8072,8118, 8164, 8209, 8254, 8298, 8342, 8385, 8428, 8470, 8512,8553, 8594, 8634, 8673, 8712, 8751, 8789, 8826, 8863, 8899,8935, 8970, 9005, 9039, 9072, 9105, 9138, 9169, 9201, 9231,9261, 9291, 9320, 9348, 9376, 9403, 9429, 9455, 9481, 9506,9530, 9554, 9577, 9599, 9621, 9642, 9663, 9683, 9702, 9721,9739, 9757, 9774, 9790, 9806, 9821, 9836, 9850, 9863, 9876,9888, 9899, 9910, 9920, 9930, 9939, 9947, 9955, 9962, 9969,9975, 9980, 9985, 9989, 9992, 9995, 9997, 9999, 10000, 10000
};float _sin ( float a ) {if ( a < _PI_2 ) {return 0.0001 * sine_array[_round ( 126.6873 * a )];} else if ( a < _PI ) {return 0.0001 * sine_array[398 - _round ( 126.6873 * a )];} else if ( a < _3PI_2 ) {return -0.0001 * sine_array[-398 + _round ( 126.6873 * a )];} else {return -0.0001 * sine_array[796 - _round ( 126.6873 * a )];}
}float _cos ( float a ) {float a_sin = a + _PI_2;a_sin = a_sin > _2PI ? a_sin - _2PI : a_sin;return _sin ( a_sin );
}int main () {float test = 0.5 * 3.14;printf ( "_sin is %f\n", _sin ( test ) );printf ( "_cos is %f\n", _cos ( test ) );
}

查表法求sin和cos相关推荐

  1. crc16modbus查表法_分别用定义法和查表法求取MODBUS_CRC16的值

    根据 Modbus 协议, 常规 485 通讯的信息发送形式如下: 地址 功能码 数据信息 校验码 1byte 1byte nbyte    2byte CRC 校验是前面几段数据内容的校验值,为一个 ...

  2. 汇编语言XLAT查表法

    汇编基础篇2 用查表法求0-9之间地十进制数地平方值 软件emu8086 汇编代码如下 ; You may customize this and other start-up templates; ; ...

  3. sin cos 查表法算法解析

    sin cos 查表法算法解析 前言 三角函数 生成sin表 sin计算 cos计算 扩展 tan计算 前言 在项目开发中,有些项目对三角函数使用频繁,尤其是游戏项目,三角函数计算是很耗性能的,产品性 ...

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

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

  5. CRC16查表法原理

    Preface CRC(Cyclic Redundancy Check)是数字通信系统中广泛使用的差错检测技术,本文将探究使用广泛的CRC查表法的原理实现细节,也作为一次学习记录总结. 一.CRC校验 ...

  6. 常用crc查表法_请教查表法计算CRC的原理

    自己写过的, 希望对你有帮助 Cyclic Redundancy Check(CRC) 原理及实现 /// 1: 需求 在数据传送过程中,为了能够进行错误检测, 往往在数据后追加一些检测码, 当接受方 ...

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

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

  8. CRC查表法运算原理

    CRC校验是依据多项式模2运算进行的,这里有两点: 1. 一个二进制串总可以表示为多项式,例如: 10101 表示为  10111 表示为 ,依次类推更长数据的表示方法. 2. 模2运算的基本规则如下 ...

  9. E002-CRC查表法-表的由来与实现1

    一.背景 CRC计算中常用空间换时间的方案即查表法,从前面的文章关于CRC的介绍中不难知道,crc的表其实就是对于整个字节256个数据的不同结果记录的集合. 1. 本文主要针对CRC16查表法表的计算 ...

最新文章

  1. Eclipse设置条件断点
  2. Java Review - ArrayList 源码解读
  3. 如何蒸螃蟹?教你蒸螃蟹3个小窍门
  4. 单片机传输浮点数给android,请问单片机怎么接收从串口发送过来的浮点数?
  5. 迅雷加载项会导致IE9浏览器崩溃
  6. 屏幕滑动_小米滑盖式可折叠手机渲染图曝光,屏幕不仅可以折叠还可滑动
  7. C语言实现贪吃蛇[内附详细步骤]
  8. 汇编语言程序设计技巧详解(附例题)
  9. 人工智能——状态空间表示法
  10. 驱动INF文件解析和 为自己的设备安装指定驱动
  11. npz文件转为npy_numpy 文件存取 npy、npz
  12. html蒙版代码是什么意思,图层蒙版是什么意思
  13. 计算机程序设计艺术 pdf版
  14. I03 403-(Python+mysql) 飞机票销售系统
  15. 2022哈工大(深圳)计算机854考研经验贴|双非跨考|初试367 复试293
  16. python dataframe index_Python将DataFrame的某一列作为index的方法
  17. JAVASE相关知识点
  18. 远控杂说---总有一款适合你
  19. RFID复习笔记(4)——RFID的射频前端
  20. hadoop主要学什么?hadoop学习总结

热门文章

  1. fstream ,ifstream,ofstream的用法详解
  2. Revit结合Dynamo建立某大桥下部结构-承台
  3. NV12 和 NV21的区别
  4. linux大页卸载失败,Linux下CUDA卸载不完全与重装失败
  5. pr中轨道遮罩键的使用
  6. 使用frp+MobaXterm进行ssh远程连接报错及解决办法
  7. mac玩rust用什么画质_Steam Mac/Windows游戏性能、画质对比
  8. 数据分析法之对比分析法
  9. freemarker+Jfreechart生成Word文档(含图片)
  10. 微软TTS语音引擎(中文)5.1