unsigned int fupingjieguo;
fupingjieguo = (ADC_RES<<2) + ADC_RESL; //将高2两位 和低8位的结果相加得到10位的结果
fupingjieguo = fupingjieguo/40.92; //ad输出的结果最大是1024按照,但是只要0-25
//缩小倍率就是1023除以25就是40.92 故用1023除以40.92即可转换为25
你这个 fupingjieguo 是整形,
你下面却让他参与 浮点 计算. 得到的结果可能还没有 除以 41 来的准确。
你既然只要 0- 25 你ADC 只要取 高 8 位 就可以了,本来低二位就是误差位你不用就好了,你非把它拉进来,为了增加结果的抖动范围么?? |