• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

PIC32 单片机 ADC结果格式

cawyai23 2017-02-25 浏览量:1525

各位前辈,问个简单的问题。自学PIC32单片机,在学习ADC的时候,发现ADC结果格式有8中,我选用的是32位带小数的格式。请问,应该怎么计算?整数格式,搞出来了。我想搞一下带小数的格式,请问各位前辈。应该怎么计算?给个思路或者计算方法。谢谢各位大神前辈了。图片是数据手册截图的。

C语言也是自学,学的囫囵吞枣 的状态。


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 嗨,ˊ這是Digital logic的數字系統,小數位是2^-1(0.5),2^-2(0.25).2^-3(0.125),...等計算出來的

    Datasheet也有示例

    我們來計算紅框中所代表的小數值,第一位代表2^-1,之後2^-2

    所以2^-1+2^-2+2^-3+2^-4+2^-5+2^-6+2^-7+2^-8+2^-9+2^-10

    =0.5+0.25+0.125+0.0625+0.03125+0.015625+0.0078125+0.00390625+0.001953125+0.0009765625

    =0.9990234375

    約等於0.999

    但一般上來說,MCU多了小數點計算並不是比較好,不管有沒有FPU都是額外的代價,所以您仍可以考慮使用整數

    以上供參考


    • 发布于 2017-02-25
    • 举报
    • 评论 0
    • 2
    • 0

其他答案 数量:6
  • adc实际有用的位数只有十位,这个32位float也不能提高adc的位数啊。

    我觉得整数读取比较方便,adc结果的uint32的数据是个0到1023的数据,可以直接赋值给程序里的int类型变量。

    如果选了有符号小数,先把最左那位d09上面一划取反得到d09,然后依次放到一个uint32变量的最后10位里。

    把一个uint32变量里面各个位都独立操作的方法有很多,直接指针操作,或用一个共用体变量间接操作指针。

    c不太懂的可以用共用体变量来做这步,不容易出错。

    • 发布于2017-02-25
    • 举报
    • 评论 0
    • 1
    • 0

  • 小数部分计算,第一位是2的负一次方,也就是1/2,第二位是负2次方,也就是1/4以此类推
    • 发布于2017-02-25
    • 举报
    • 评论 0
    • 1
    • 0

  • 你这么理解,所谓小数,不如说是归一化,这样以最大值最接近1.其他都是小数
    • 发布于2017-02-25
    • 举报
    • 评论 0
    • 1
    • 0

  • 32位带小数的格式,首先你要确定小数部分有多少位,然后第一位×0.5,第二位×0.25.。。以此类推

    整数部分第一位×1,第二位×2.。。

    不过本人建议,直接去改官方例程,不然程序比较麻烦

    • 发布于2017-02-25
    • 举报
    • 评论 0
    • 1
    • 0

  • 小数不好处理你可以把它放大为实数再处理也是可以的
    • 发布于2017-02-27
    • 举报
    • 评论 0
    • 1
    • 0

相关问题

问题达人换一批

PIC32 单片机 ADC结果格式