如何更新一个single 的浮点数到BQ20z75的Data Flash中的 CC GAIN (F4)中去,它的字节顺序是怎样的?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如何更新一个single 的浮点数到BQ20z75的Data Flash中的 CC GAIN (F4)中去,它的字节顺序是怎样的?
以BQ34z110中的CC gain 和CC delta 为列描述TI的gas gauge芯片是如何储存一个single 浮点数,那么基于这个回复你可以倒推过来正确的存储方式,注意尾数部分为了节约储存空间省略最高位的1,以及big endian的字节顺序。
CC gain 读取的值为0x7F71205C
前两个字节用来表示指数函数的指数大小,0x7f=127,按照这个存储规格,计算实际的指数为127-128-24=-25,即2^(-25) 余下的数据来计算实际的数据大小,按照big endian的顺序来读取,但这里如同IEEE745一样由于最高位始终为1,所以在存储时将尾数的最高bit上升了一位,那么我们计算的时候需要将MSB退回来,所以我们将这个数据与0x80做一个Or运算。得到的数据为0xF171205C,转换为10进制并乘以之前的指数函数得到15802460*2^(-25)=0.47095 .
CC Delta 读取的值为0X940898C0
储存的指数为0X94=148,计算实际的指数 148-128-24=-4,将尾数部分的高字节向右移动一位成为0x8898C0,那么得到8952000*2(-4)=559500