C语言 单片机 快速计算COS SIN
STM32 调用math库中的cos和sin函数时程序卡死,采用以下解决方案,自定义cos和sin函数。
/* includes ------------------------------------------------------------------*//* typedef -------------------------------------------------------------------*/
/* define --------------------------------------------------------------------*/
/* variables -----------------------------------------------------------------*//* 取0~90度的结果,其他角度可以通过对称性和周期性推算出 */
float _fast_cos[91] = { 1,
0.999848,0.999391,0.99863,0.997564,0.996195,0.994522,0.992546,0.990268,0.987688,0.984808,
0.981627,0.978148,0.97437,0.970296,0.965926,0.961262,0.956305,0.951057,0.945519,0.939693,
0.93358,0.927184,0.920505,0.913545,0.906308,0.898794,0.891007,0.882948,0.87462,0.866025,
0.857167,0.848048,0.838671,0.829038,0.819152,0.809017,0.798635,0.788011,0.777146,0.766044,
0.75471,0.743145,0.731354,0.71934,0.707107,0.694658,0.681998,0.669131,0.656059,0.642788,
0.62932,0.615661,0.601815,0.587785,0.573576,0.559193,0.544639,0.529919,0.515038,0.5,
0.48481,0.469471,0.45399,0.438371,0.422618,0.406737,0.390731,0.374606,0.358368,0.34202,
0.325568,0.309017,0.292372,0.275637,0.258819,0.241922,0.224951,0.207912,0.190809,0.173648,
0.156434,0.139173,0.121869,0.104528,0.0871556,0.0697563,0.0523358,0.0348993,0.0174522,-1.73205e-07};float _fast_sin[91] = { 0,
0.0174524,0.0348995,0.052336,0.0697565,0.0871558,0.104528,0.121869,0.139173,0.156434,0.173648,
0.190809,0.207912,0.224951,0.241922,0.258819,0.275637,0.292372,0.309017,0.325568,0.34202,
0.358368,0.374607,0.390731,0.406737,0.422618,0.438371,0.453991,0.469472,0.48481,0.5,
0.515038,0.529919,0.544639,0.559193,0.573576,0.587785,0.601815,0.615662,0.62932,0.642788,
0.656059,0.669131,0.681998,0.694658,0.707107,0.71934,0.731354,0.743145,0.75471,0.766045,
0.777146,0.788011,0.798636,0.809017,0.819152,0.829038,0.838671,0.848048,0.857167,0.866025,
0.87462,0.882948,0.891007,0.898794,0.906308,0.913546,0.920505,0.927184,0.93358,0.939693,
0.945519,0.951057,0.956305,0.961262,0.965926,0.970296,0.97437,0.978148,0.981627,0.984808,
0.987688,0.990268,0.992546,0.994522,0.996195,0.997564,0.99863,0.999391,0.999848,1};float fast_cos(int16_t angle)
{if (angle>=0 && angle <= 90){return _fast_cos[angle];}else if (angle > 90 && angle <=180){return -(_fast_cos[180-angle]);}else if (angle > 180 && angle <=360){return fast_cos(360-angle);}else if (angle > 360){return fast_cos(angle - 360);}else if (angle < 0){return (fast_cos(-angle));}
}float fast_sin(int16_t angle)
{if (angle>=0 && angle <= 90){return _fast_sin[angle];}else if (angle > 90 && angle <=180){return _fast_sin[180-angle];}else if (angle > 180 && angle <=360){return -(fast_sin(360-angle));}else if (angle > 360){return fast_sin(angle - 360);}else if (angle < 0){return -(fast_sin(-angle));}
}
C语言 单片机 快速计算COS SIN相关推荐
- 用C语言编写程序计算cos x 的近似值,输入精度 e 和 x,用下列公式求cos(x)的近似值...
C语言 输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e。 #include //头文件置顶#include double fact(int n){\ C语言编写 ...
- dsp输出正弦波 c语言,快速计算正弦波 - DSP 与 ARM 处理器 - 电子工程世界-论坛...
快速计算正弦波 [复制链接] 在DSP运用中,经常需要产生正弦波.如果直接用c的数学函数sin,当然可以产生正弦波,但是由于sin函数本身的效率很低,产生正弦波所需要的MIPS就会占去DSP处理能力的 ...
- 泰勒级数sinx c语言,C语言用泰勒级数计算sinx,计算sin1,sin2都正确,sin
话题:C语言用泰勒级数计算sinx,计算sin1,sin2都正确,sin3不正确,不知回答:最好不要用这种算法,因为你的x=3的时候,time是9,就要计算17的阶乘,你可以用阶乘计算器试一下,17的 ...
- C++输入角度计算三角函数cos sin tan
#include <iostream> #include <cmath> using namespace std; //const double pi (3.14159265) ...
- [Julia语言]使用Chudnovsky 算法快速计算圆周率 Pi (π) 值
测试用的电脑是一台10年老电脑,CPU型号:E3 1230V2,3.3GHZ,4核8线程,8GB内存. 用下面的Julia程序,计算1万位的Pi值,耗时为0.26秒. 作为比较,用Julia实现的另一 ...
- C语言--用二分法快速计算指定整数的整数平方根
题目:给定一个正整数,小于2的63次方.要求不是用pow,sqrt等算法库函数,快速计算指定正整数的平方根(保留整数部分). 普通办法是从1开始计算平方数,如果给定的正整数在相邻两个平方数之间,那么 ...
- 【51单片机快速入门指南】4.4.1:python串口接收磁力计数据并进行最小二乘法椭球拟合
目录 硬知识 Python代码 使用方法 串口收集数据 椭球拟合 验证 STC15F2K60S2 16.384MHz Keil uVision V5.29.0.0 PK51 Prof.Develope ...
- 【51单片机快速入门指南】4.3.1: MPU6050调用DMP库获取四元数和欧拉角
目录 相关介绍 DMP库相关 DMP加载步骤: DMP设置数据写入 更新DMP DMP数据包结构 程序实现 DMP.c DMP.h 测试程序 四元数 实验现象 欧拉角的获取 普中51-单核-A2 ST ...
- c语言做快速傅里叶变换和快速逆傅里叶变换
C语言做快速傅里叶变换和快速逆傅里叶变换 快速傅里叶变换(FFT)和快速逆傅里叶变换(IFFT)要求做傅里叶变换的数据点数只能是2的整数次幂,比如2,4,8,16,32,64,128,256,512, ...
最新文章
- 20180829-Java多线程编程
- 学习需要总结。。。。
- windows下sse性能对比
- android 点击网络图片大全,android查看网络图片的实现方法
- 【OCR技术系列之二】文字定位于切割
- 《ZEMAX光学设计超级学习手册》一一2.2 几何光学像质量评价
- CentOS常用到的查看系统命令
- Collecting package metadata (current_repodata.json): done Solving environment: failed with repodata
- 网友半夜差点被沐浴露吓死,众人:原来不止我胆小....
- mysql直接生成excel_MYSQL 将excel里面的数据直接生成sql语句
- linux和cisco有关系吗,如何在Linux环境下安装Cisco RTMT
- Xilinx FPGA全局时钟和局部时钟
- java使用POI5.0生成简易Excel工作簿的一种方法
- LED、LCD背光源、CCFL
- 如何实现文件目录自动生成(Windows操作系统)
- QM4_Probability
- 奥鹏英语计算机统考时间2019,【真题及答案】2019年4月网络教育统考《大学英语B》考试试题及答案[适用于奥鹏、电大国开、网络教育学...
- 快速绘制流程图「GitHub 热点速览 v.22.47」
- “邀请码” - 诈骗类应用分析
- 服务器mtbf性能测试,云服务器 MTBF指标