单片机快速开根号函数
这个是一个电机驱动里面抠出来的。
/*! \brief Square root routine.STM32-72M主频耗时2.5us** sqrt routine 'grupe', from comp.sys.ibm.pc.programmer* Subject: Summary: SQRT(int) algorithm (with profiling)* From: warwick@cs.uq.oz.au (Warwick Allison)* Date: Tue Oct 8 09:16:35 1991** \param x Value to find square root of.* \return Square root of x.*/
unsigned long sqrt(unsigned long x)
{register unsigned long xr; // result registerregister unsigned long q2; // scan-bit registerregister unsigned char f; // flag (one bit)xr = 0; // clear resultq2 = 0x40000000L; // higest possible result bitdo{if((xr + q2) <= x){x -= xr + q2;f = 1; // set flag}else{f = 0; // clear flag}xr >>= 1;if(f){xr += q2; // test flag}} while(q2 >>= 2); // shift twiceif(xr < x){return xr +1; // add for rounding}else{return xr;}
}
转载博主的,原文连接:https://blog.csdn.net/zmazon/article/details/8217866
float SquareRootFloat(float number)
{//STM32-72M主频耗时8uslong i;float x, y;const float f = 1.5F;x = number * 0.5F;y = number;i = * ( long * ) &y;i = 0x5f3759df - ( i >> 1 );y = * ( float * ) &i;y = y * ( f - ( x * y * y ) );y = y * ( f - ( x * y * y ) );return number * y;
}
这个是转一个博主的,误差有点大,但是很快。原文连接:https://blog.csdn.net/xh270984572/article/details/72189457
float sq(float f)
{ //快速开方,STM32-72M主频耗时1.3usint o =((( ( *( (int*)&f ) )^0x00800000 )>>1)&0xbfffffff)+0x20000000;if((o&0x00400000)>0)o-=0x00800000;return (*((float*)&o));
}
单片机快速开根号函数相关推荐
- java开根号函数_Java中真的只有值传递么?
原创: ITwalking 转载于公众号[ 编程大道] (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法 ...
- python开根号函数图像,使用matplotlib / python的平方根刻度
I want to make a plot with square root scale using Python: However, I have no idea how to make it. M ...
- 单片机快速开平方的算法
C语言中开平方的算法中要开平方的话,可以在头文件中加#include <math.h>.然后调sqrt(n);函数即可.但在单片机中要开平方.可以用到下面算法: 算法1: 本算法只采用移位 ...
- 【51单片机快速入门指南】4.6:I2C 与 PCF8563实时时钟日历芯片
目录 硬知识 概述 特性 功能描述 报警功能模式 定时器模式 CLKOUT输出 复位低电压检测器和时钟监视器 低电压检测器和时钟监视器 寄存器结构 寄存器概述 BCD编码格式寄存器概述 Control ...
- 【51单片机快速入门指南】5.3:SPI控制晶联讯JLX12864G_08602 LCD屏幕
目录 示例程序 JLX12864G_08602.c JLX12864G_08602.h JLX12864G_08602_Font.c JLX12864G_08602_Font.h 测试程序 main. ...
- 【51单片机快速入门指南】2:GPIO LED与按键
目录 硬知识 概念 I/O口配置 准双向口/弱上拉输出配置 开漏输出配置 实战 延时函数的生成 闪烁一个LED灯 源码 实验现象 流水灯 源码 实验现象 按键控制LED灯 按键介绍 源码 实验现象 普 ...
- maya python 开根号_maya python
胡泳滨MayaPython简易教程,如需转载,请标明出处地址: http://huyongbin.blogbus.com/c3363976/ 谢谢配合! MayaPython第一篇 - 介绍 大家好, ...
- 【51单片机快速入门指南】4.2: SSD1306 OLED屏(0.96寸、1.3寸)的I2C控制详解
目录 硬知识 SSD1306简介 I2C 接口 从机地址位(SA0) I2C 总线写数据 命令解码器 晶振电路和显示时间发生器 复位 图形显示数据RAM (GDDRAM) 命令表 基本命令表 部分指令 ...
- 单片机快速开方 -- 整数开方
说明:这是一个整数开方函数,返回结果也是整数. 问题:用51单片机采集ADC,交流电,然后进行均方根求有效值,开方调用 #include <math.h> float sqrt (floa ...
- 经典面试题:如何快速求解根号2?
关注下方公众号,分享硬核知识 作者 | 小K 出品 | 公众号:小K算法 (ID:xiaok365) 01 故事起源 有一次小K去面试,面试官问我怎么求解根号2,这还用求,不就是1.414... 原来 ...
最新文章
- HTML5路由和PJAX
- 实用代码-C#之IP地址和整数的互转
- 美国AI公司30亿人脸数据被黑,遭科技巨头联合“封杀”
- 认识div(division)在排版中的作用
- java web mvc spring_Java下Web MVC的领跑者:SpringMVC
- 软件工程期末设计(校园教务系统)
- 人工智能之-产生式系统
- 数学建模——评价模型之层次分析法
- 这也许是史上最有趣的破解软件合集
- el-table合并单元格的方式
- OA新增百亿市场,蓝凌、钉钉靠“智能OA”占稳C位
- CSDN上传资源提示:资源上传中断
- 让你的2003和xp一样好用
- dockerUI工具的搭建
- 快速用户体验研究方法
- 【微信小程序】版本更新提示
- 汤晓丹的第四版计算机操作系统--第八章总结概述
- RealNetworks vs. 微软:早期流媒体行业之争
- 小米5s信号测试软件,信号覆盖整个足球场!小米官方发布AX6000测试
- 【必备干货】通用单运放调零电路