AdcRegs.ADCRESULT0^0x8000 这个运算只是为了取得实际值的正负而已,Q15格式是我们自己人为规定的,这里TI把采样的16位最大当作1来处理,(虽然只有高12为结果为A/D结果),
这样说吧:采样结果= 0x7FF0 那么实际采样值应该是0x7FF(高12位为采样结果),应该是应该是对应AD口 的 1.5V的电压值,这个电话对应的实际电压一般是0V,大于这个(0x8000及以上),我们认为是大于0V的一个电压,少于这个我们认为少于0V的一个电压(负压),所以AdcRegs.ADCRESULT0^0x8000
这个运算将电压的正负区别开来。
为计算方便,我们就采样的结果标幺处理,其实可以理解为放大或者缩少一个倍数。如果我们认为0XFFF0是 -1 (或者-0.999999)的话,那么该如何表示呢?如果0.999999用Q15又该如何表示。很显然,0XFFF0 就是 -0.99999的Q15格式。自己可以去推导下很简单的。
0xFFF0 (注意 负数用补码形式表示的哦)
举例:
0X7FF0 (表示个正数。0x7ff0) 0X7FF0= 32752
2的15次方为:32768
Q15 格式结果= 32752/32768=0.99951171875
不知道这样说你明白没有,可能表达不清楚。吧简单的事情说复杂了。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。