Scale计算公式 - 关于电压值与二进制数值间的转换
目前在我们驱动的AO及AI功能中,Scale中的最大LSB取值有问题,公式是这样的:(USHORT) (max_count * (output_value - min_volt) / (max_volt - min_volt)),拿PCI-1741U来说,其max_count目前的取值是65535,其实正确取值应该是65536,虽然硬件上D/A转换器只有16位,无法输出真正的65536,可是在公式中max_count起着量程最大份数的角色,就是说虽然满量程是从0~65535,而实际的分数应该是65536。
如果按我们目前的做法,将max_count定为65535就会出现很微小的问题,举个例子,量程范围+/-5V,输出0V,由于0V是+/-5V的中间值,因此自然会计算得出65535的一半,即32767.5,但这不是我们希望得到的,因为向硬件中写入的值只能是整型,所以浮点数被取整得到32767,在PCI-1741U的实际测试中发现以32767(即7FFFH)为输出值,测得的结果是-0.005V,现在我们打算采用65536作为max_count的值再试一试,经过公式计算得出的结果是一个整型32768(即8000H,比之前多了一个LSB),结果发现输出测得的结果是-0.004V,更接近0V!(比之前精确了0.001V)。
虽然只有0.001V,但是在一些工业现场中,这个误差已经不算小了,目前我们所有linux驱动中的AI、AO都需要对此问题进行修改。
注:还要注意在输出值为满量程的时候,要判断最终计算结果,避免溢出。
转载于:https://blog.51cto.com/lion3875/532669
Scale计算公式 - 关于电压值与二进制数值间的转换相关推荐
- AD转换实验 编写程序利用ADC0804 AD转换器采集电位器的模拟电压,将采集到的数字量在程序中换算成实际采集的模拟电压,并用数码管显示所采集的实际模拟电压值。(如:AD转换后的数字量为128,则
编写程序利用ADC0804 AD转换器采集电位器的模拟电压,将采集到的数字量在程序中换算成实际采集的模拟电压,并用数码管显示所采集的实际模拟电压值.(如:AD转换后的数字量为128,则数码管应该显示2 ...
- python解析二进制文件以及不同进制数值间的转换
目录 1.python解析二进制文件 2.不同进制数值间的转换 参考文献: 1.python解析二进制文件 不同类型数据的字节数不同,因此首先要明确不同物理量数据所在的字节位置及其数据类型,pytho ...
- 常见字符串和数值间得转换
字符串和数值之间的转换 c标准库: 字符串转数字 atof atoi atol atoll _atoi64 strtof strtod strtold strtol strtoll strtoul c ...
- 怎么用计算机的计算器转换进位制,计算器如何进行数值间的转换?
满意答案 fzdx_77 2014.12.12 采纳率:42% 等级:12 已帮助:8314人 函数计算器的使用说明EL-506P与与EL-522相比,大部分计算功能相同.只是EL-506P缺少 ...
- java 重量单位换算_用java创建一个可以换算长度单位的length类,将某种长度单位进行数值间的转换。...
已解决 其实挺简单的 但是我只是个初学者.. 谢谢各位帮助 代码分享一下.. public class Length { /** * 完成单位的转化 * @param value :数值 * @par ...
- 第二章 二进制数值和记数系统
1 什么是数字 数字是属于抽象数学系统的一个单位,服从特定的顺序法则.加法法则和乘法法则. 2 位置记数法 数字是用位置记数法编写的.最右边的数位表示它的值乘以基数的0次幂,紧挨着这个数的左边的数位表 ...
- STM32----重温ADC测量电压值
ADC测量电压值 实现目标使用两个按键控制串口的输出和ADC的转换.使用DMA将ADC数据存放在内存中,然后计算对应的电压值.然后由串口1发送至上位机. 主要讲一下对于按键和串口的配置与之前都一样只是 ...
- FPGA设计显示电压值
随着电子技术的飞速发展,数字电压表在电压测量领域的作用显得更加重要,本次实训课程旨在掌握基于FPGA的数字电压表设计.本次设计在Quartus II 环境下进行,以Verilog HDL语言实现分频. ...
- ADC实验(读取引脚电压值)
目录 ADC 简介 什么是ADC I.MX6ULL ADC 简介 ADC寄存器介绍 配置步骤 硬件原理分析 实验程序编写 编译下载验证 编写Makefile 和链接脚本 编译下载 ADC 是一种常见的 ...
最新文章
- Deep Learning 学习随记(三)续 Softmax regression练习
- Spring MVC 中使用 Google kaptcha 验证码
- 开发ing经验关于游戏中寻路
- PHP中文获取拼音函数
- 623. 在二叉树中增加一行
- 进程间通信之消息队列
- 快速运行python虚拟环境_快速入门Python 最新最流行的pipenv虚拟环境
- (转)OpenLayers3基础教程——OL3 介绍interaction
- Android 系统(153)--- M上默认接入点apn显示
- mysql后天命令查下显示_MySQL命令
- 003_ElasticSearch详解与优化设计
- POI动态下载Excel模板案例
- 睡眠监测目前的原理分析
- Vue router原理
- 品酒论三国之一(帅才的典型特征)
- Ubuntu Desktop 更改默认应用程序 (Videos -> SMPlayer)
- 112家IT公司薪水一览表
- 管理好一个团队,必须先消灭这些问题 [联络易]
- 如何做一名算法应用工程师?
- 直播APP开发:熊猫直播求续命,直播的多种玩法
热门文章
- linux libstdc 怎样升级,linux 更新libstdc++.so.6
- c 语言随机验证码原理,用C生成随机中文汉字验证码的基本原理及代码.doc
- 计算机硬件配置和软件有哪些,BIM软件对电脑硬件配置有什么要求?
- torch nn.MaxPool2d
- apscheduler 任务管理
- Oracle序列生成器
- uint32是什么数据类型_C++编程基础: 4. 数据类型
- centos7配置IP地址CentOS7 修改hostname,ip地址以及hosts(永久生效)
- Vue.js学习总结(1)——Windows下Vue.js开发环境搭建
- 技术人员如何创业《一》- 产品及想法