目前在我们驱动的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计算公式 - 关于电压值与二进制数值间的转换相关推荐

  1. AD转换实验 编写程序利用ADC0804 AD转换器采集电位器的模拟电压,将采集到的数字量在程序中换算成实际采集的模拟电压,并用数码管显示所采集的实际模拟电压值。(如:AD转换后的数字量为128,则

    编写程序利用ADC0804 AD转换器采集电位器的模拟电压,将采集到的数字量在程序中换算成实际采集的模拟电压,并用数码管显示所采集的实际模拟电压值.(如:AD转换后的数字量为128,则数码管应该显示2 ...

  2. python解析二进制文件以及不同进制数值间的转换

    目录 1.python解析二进制文件 2.不同进制数值间的转换 参考文献: 1.python解析二进制文件 不同类型数据的字节数不同,因此首先要明确不同物理量数据所在的字节位置及其数据类型,pytho ...

  3. 常见字符串和数值间得转换

    字符串和数值之间的转换 c标准库: 字符串转数字 atof atoi atol atoll _atoi64 strtof strtod strtold strtol strtoll strtoul c ...

  4. 怎么用计算机的计算器转换进位制,计算器如何进行数值间的转换?

    满意答案 fzdx_77 2014.12.12 采纳率:42%    等级:12 已帮助:8314人 函数计算器的使用说明EL-506P与与EL-522相比,大部分计算功能相同.只是EL-506P缺少 ...

  5. java 重量单位换算_用java创建一个可以换算长度单位的length类,将某种长度单位进行数值间的转换。...

    已解决 其实挺简单的 但是我只是个初学者.. 谢谢各位帮助 代码分享一下.. public class Length { /** * 完成单位的转化 * @param value :数值 * @par ...

  6. 第二章 二进制数值和记数系统

    1 什么是数字 数字是属于抽象数学系统的一个单位,服从特定的顺序法则.加法法则和乘法法则. 2 位置记数法 数字是用位置记数法编写的.最右边的数位表示它的值乘以基数的0次幂,紧挨着这个数的左边的数位表 ...

  7. STM32----重温ADC测量电压值

    ADC测量电压值 实现目标使用两个按键控制串口的输出和ADC的转换.使用DMA将ADC数据存放在内存中,然后计算对应的电压值.然后由串口1发送至上位机. 主要讲一下对于按键和串口的配置与之前都一样只是 ...

  8. FPGA设计显示电压值

    随着电子技术的飞速发展,数字电压表在电压测量领域的作用显得更加重要,本次实训课程旨在掌握基于FPGA的数字电压表设计.本次设计在Quartus II 环境下进行,以Verilog HDL语言实现分频. ...

  9. ADC实验(读取引脚电压值)

    目录 ADC 简介 什么是ADC I.MX6ULL ADC 简介 ADC寄存器介绍 配置步骤 硬件原理分析 实验程序编写 编译下载验证 编写Makefile 和链接脚本 编译下载 ADC 是一种常见的 ...

最新文章

  1. Deep Learning 学习随记(三)续 Softmax regression练习
  2. Spring MVC 中使用 Google kaptcha 验证码
  3. 开发ing经验关于游戏中寻路
  4. PHP中文获取拼音函数
  5. 623. 在二叉树中增加一行
  6. 进程间通信之消息队列
  7. 快速运行python虚拟环境_快速入门Python 最新最流行的pipenv虚拟环境
  8. (转)OpenLayers3基础教程——OL3 介绍interaction
  9. Android 系统(153)--- M上默认接入点apn显示
  10. mysql后天命令查下显示_MySQL命令
  11. 003_ElasticSearch详解与优化设计
  12. POI动态下载Excel模板案例
  13. 睡眠监测目前的原理分析
  14. Vue router原理
  15. 品酒论三国之一(帅才的典型特征)
  16. Ubuntu Desktop 更改默认应用程序 (Videos -> SMPlayer)
  17. 112家IT公司薪水一览表
  18. 管理好一个团队,必须先消灭这些问题 [联络易]
  19. 如何做一名算法应用工程师?
  20. 直播APP开发:熊猫直播求续命,直播的多种玩法

热门文章

  1. linux libstdc 怎样升级,linux 更新libstdc++.so.6
  2. c 语言随机验证码原理,用C生成随机中文汉字验证码的基本原理及代码.doc
  3. 计算机硬件配置和软件有哪些,BIM软件对电脑硬件配置有什么要求?
  4. torch nn.MaxPool2d
  5. apscheduler 任务管理
  6. Oracle序列生成器
  7. uint32是什么数据类型_C++编程基础: 4. 数据类型
  8. centos7配置IP地址CentOS7 修改hostname,ip地址以及hosts(永久生效)
  9. Vue.js学习总结(1)——Windows下Vue.js开发环境搭建
  10. 技术人员如何创业《一》- 产品及想法