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 位 就可以了,本來低二位就是誤差位你不用就好了,你非把它拉進來,為了增加結果的抖動范圍么?? |