我正在编写一个嵌入式系统程序,它通过SPI从外部ADC接收24位数据,并将数据存储在整数数组中.那部分是有效的.为了使数据有用,我需要以二进制或十六进制形式连接每个字节并除以0x7FFFFFF.这是我遇到麻烦的地方.例如,我可能会通过SPI接收一个如下所示的数据数组:
data_buffer = { 24 , 17 , 140 };
Run Code Online (Sandbox Code Playgroud)
又名
data_buffer = { 0b00011000 , 0b00010001 , 0b10001100 };
Run Code Online (Sandbox Code Playgroud)
又名
data_buffer = { 0x18 , 0x11 , 0x8C };
Run Code Online (Sandbox Code Playgroud)
我需要用这个值来连接每个元素来得到这样的东西:
data_value = 0x18118C
Run Code Online (Sandbox Code Playgroud)
然后将该值除以0x7FFFFF,以使其在我的程序中有用.在这个例子中,我最终想要的值是0x18118C/0x7FFFFF = 0.188
我该怎么做呢?
对不起,我没有提供更多代码,老实说我不知道从哪里开始.