不會C,也沒有用過STM8
但單片機的原理是一樣的:C代碼是先轉(zhuǎn)換(編譯)成匯編,然后再燒錄進單片機的
單片機C數(shù)據(jù)類型并不是標準C的長度,不同的編譯器有著不同的數(shù)據(jù)類型的長度,對于超過長度的,編譯器就不要那多出來的部分了,多次運算之后,不要數(shù)據(jù)越來越多,誤差就越來越大了
浮點型數(shù)據(jù)的長度要比整型的長,運算結(jié)果誤差是要大一點的
對于10位的ADC,你直接使用整型運算就可以了
865*3022/1024,這樣最多使用到一32位的整型數(shù)據(jù),/1024放后面,這會是一個位移的運算,也許誤差會小點
運算結(jié)果2552.7左右,能有2552就很好了,要是我的話,后面就直接加小數(shù)點,不再運算了 |