我正在用C编写一个小型8位微控制器的软件.部分代码是读取电流互感器(ZCT)的ADC值,然后计算RMS值.流过ZCT的电流是正弦曲线但可能会失真.我的代码如下:

float adc_value,inst_current;

float acc_load_current; // accumulator = (I1*I1 + I2*I2 + ... + In*In)

double rms_current;

// Calculate the real instantanous value from the ADC reading

inst_current = (adc_value/1024)*2.5; // 10bit ADC,Voltage ref. 2.5V,so formula is: x=(adc/1024)*2.5V

// Update the RMS value with the new instananous value:

// Substract 1 sample from the accumulator (sample size is 512,so divide accumulator by 512 and substract it from the accumulator)

acc_load_current -= (acc_load_current / 512);

inst_current *= inst_current; // square the instantanous current

acc_load_current += inst_current; // Add it to the accumulator

rms_current = (acc_load_current / 512); // Get the mean square value. (sample size is 512)

rms_current = sqrt(rms_current); // Get RMS value

// Now the < rms_current > is the real RMS current

但是,它有许多浮点计算.这给我的小型MCU增加了很大的负担.我发现sqrt()函数在我的编译器中不起作用.

有没有可以运行得更快的代码?

rms c语言 函数,C中任何更快的RMS值计算?相关推荐

  1. C语言在BST中找到最接近目标的值的算法(附完整源码)

    C语言在BST中找到最接近目标的值的算法 C语言在BST中找到最接近目标的值的算法完整源码(定义,实现,main函数测试) C语言在BST中找到最接近目标的值的算法完整源码(定义,实现,main函数测 ...

  2. python程序在函数内执行得更快

    http://www.cnblogs.com/nepaul/archive/2012/07/15/2592179.html 为什么Python程序在函数内执行得更快?(来源StackOverflow) ...

  3. C语言函数怎么像python那样返回多个值?(三种方法:1、设置全局变量 2、传递指针 3、使用结构体返回不同类型的数据)

    引用文章:c语言函数可不可以返回多个值 文章目录 方法一:设置全局变量 例如:利用一个函数求出正方形的周长和面积. 方法二:使用数组名或指针作为函数的形参 实例2:编写函数求一维整形数组的最大值与最小 ...

  4. php 数组去重函数,【译】更快的方式实现PHP数组去重

    概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组.这个函数大多数情况下都能工作得很好.但是,如果你尝试在一个大的数组里使用array_u ...

  5. OpenAI最新发布通用人工智能路线图!AGI比想象中来得更快!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入->[计算机视觉]微信技术交流群 转载自:机器之心 | 编辑:泽南.小舟 通用人工智能的出现可 ...

  6. vs2015c语言函数,c++中strcpy函数在VS2015无法使用的问题

    本篇文章介绍了c++中strcpy函数在VS2015无法使用的问题. 一:原因:一般认为是vs准备弃用strcpy的,安全性较低,所以微软提供了strcpy_s来代替 然而,strcpy_s并没有st ...

  7. 德鲁伊 oltp oltp_内存中OLTP –更快变得更简单!

    德鲁伊 oltp oltp In-memory OLTP is a revolutionary tool introduced on SQL Server 2014. On SQL Server 20 ...

  8. R语言将字符串中的数字提取出来作为值

    用到的函数 extract() 例子 首先构造数据 week <- c("week1","week2","week3","w ...

  9. OpenAI发布通用人工智能路线图:AGI比想象中来得更快

    来源:机器之心 本文约2600字,建议阅读5分钟 通用人工智能的出现可能只是技术发展历程中的一个小节点,因为 AGI 或许可以加速自身的进步,从而以指数方式扩展能力. 在 ChatGPT 引爆科技圈之 ...

最新文章

  1. 阅读笔记:Solving the “false positives” problem in fraud prediction
  2. 2014 Centos 6 minimal 安装mysql5
  3. 网关的作用是什么_SpringCloud中Zuul网关原理及其配置,看它就够了
  4. php 删除 r n,PHP去除换行符'/r/n'回车换行与PHP_EOL变量的使用
  5. 011——数组(十一)array_merge array_merge_recursive array_change_key_case
  6. Microsoft .NET 框架资源基础 ---摘自:msdn
  7. oracle中trunc x-1,oracle中trunc函数的说明
  8. 31 CO配置-控制-产品成本控制-成本对象控制-期末结算-定义结算在产品的记帐规则
  9. Spring Boot Initilizr - 使用Spring Boot CLI
  10. python第七章动手试一试_《Python从入门到实践》第八章动手试一试
  11. 【Flink】Flink RocksDB内存占用一直增大 state.backend.rocksdb.memory.managed
  12. c#的装箱和拆箱及值类型和引用类型
  13. socket.io实现简单多人聊天室
  14. Lyapunov稳定性分析3(离散时间系统)
  15. 漏斗模型被营销大师们玩烂了
  16. CentOS查找redis配置文件及防火墙相关命令
  17. speedoffice表格如何对内容进行分组?
  18. 苹果手机文件转换html,苹果手机html文件怎么打开?
  19. 利用华为DTM将事件发送到Firebase
  20. h2o flow初探

热门文章

  1. Linux集群服务知识点总结及通过案例介绍如何实现高性能web服务
  2. python 安装 pip,setuptools
  3. ASP数据库插马小议
  4. ibatis3 一对一搞定
  5. quartus 修改 时钟_FPGAQuartusII时钟约束.doc
  6. seata 集群_【视频】 聊聊分布式事务解决方案seata
  7. 【学习笔记】16、常用内置函数(Built-in Functions)
  8. 【学习笔记】9、控制流语句-IF条件判断
  9. 2、Power Query-动态汇总单元格区域数据
  10. 江苏小米授权维修商网点收藏