|
我在我的FPGA代码中查看超过我的模拟设备输入范围的原始二进制数据,为什么会出现这种情况?
与预期的值相比,从24位模拟模块采集到的原始二进制数据(比如4.29E+9)或者数值可能会很大。如果从模块读取的值为负数时,这种数值(很大的值)就会发生。对模拟读取而言,FPGA的I/O节点输出是I32型的数据。如果这个I32的值从模块I/O读节点传输到例如 DMA写函数 ,在主机VI中进行读取,结果输出将为U32,并且得到一个出乎预期的很大的值。在很多cRIO的范例中,其可以通过Binary to Nominal VI进行校正。你也可以使用To Long Integer函数来校正这个问题。
注意 :如果你安装了NI-RIO2.4或者后续版本的驱动,你应该考虑使用定点数据类型,其内嵌数据类型的校验,不需要上述的转换操作。
|