如何将一个24位,二进制补码值到一个带符号整数吗?
100(30天)
显示旧的评论
我想读一个模数转换器使用覆盆子πSPI接口由Matlab控制。模数转换器输出24位二进制补码的数据格式,并放在第一位。Matlab
writeRead
命令返回的数据作为一个行向量数据类型
字符
我怎么能快速将数据转化为一个整数数据类型
int32
吗?
接受的答案
答案(1)
Murat米色
2014年6月10日
有一个例子MATLAB类覆盆子π支持包MCP300x ADC的类似。万博1manbetx这是readVoltage()方法为这类:
函数电压= readVoltage (obj adcChannel)
validateattributes (adcChannel, {“数字”},…
{“标量”,“> =”0,“< =”obj.NumAdcChannels-1},”,“adcChannel”);
adc = obj.getAdcChannelSelect (adcChannel);
data = uint16 (obj.spiObj。writeRead ([1、adc、0]));
highbits = bitand(数据(2)obj.Lsb2);
电压=双(bitor (bitshift (highbits 8),数据(3)));
电压= (obj.VoltageReference / 1024) *电压;
结束
obj。Lsb2被定义为bin2dec (“00000011”)。读取ADC值是10位藏进两个8位值。上两位字节2和8字节3中最低有效位。
你可以看一看整个类定义:
<万博1manbetx支持包段dir > \ raspi \ + raspi \ +内部\ mcp300x.m