標(biāo)題: 單片機(jī)電壓表誤差校準(zhǔn)怎么處理 [打印本頁]

作者: samxon    時(shí)間: 2024-12-1 21:54
標(biāo)題: 單片機(jī)電壓表誤差校準(zhǔn)怎么處理
我在校準(zhǔn)電壓誤差時(shí)時(shí)我想這樣處理的。
基準(zhǔn)電壓20伏, 如果電壓表顯示大于20伏,我就在ADC 結(jié)果內(nèi)減去誤差數(shù)。
如果電壓表顯示小于20伏,我就在ADC結(jié)果內(nèi)加上誤差數(shù)。

從而達(dá)到校準(zhǔn)電壓表的目的。


請問在實(shí)際存儲這個(gè)誤差數(shù)時(shí),我如何存儲正或者時(shí)負(fù)數(shù)呢�;蛘叽蠹矣玫钠渌k法。謝謝大家指教。

作者: frank_tw    時(shí)間: 2024-12-2 02:30
s bit sxxx xxxx
正數(shù) 0000 0000 = 0
負(fù)數(shù) 1000 0000 =-1

作者: wufa1986    時(shí)間: 2024-12-2 08:07
用指針強(qiáng)制轉(zhuǎn)換即可,比如一個(gè)浮點(diǎn)數(shù),你用unsigned char指針指向他的地址,就可以提取4bytes出來存儲,同理用浮點(diǎn)指針指向這個(gè)地址,就可以取出浮點(diǎn)數(shù)
作者: jjy1039    時(shí)間: 2024-12-2 08:36
參考數(shù)據(jù)類型,一般來說直接用有符號的數(shù)值就行了,定義數(shù)值類型的時(shí)候不加unsigned。
C語言的數(shù)值類型如下:
int -2147483648至2147483647
long -2147483648至2147483647
long long的最大值:9223372036854775807至-9223372036854775808
float -3.4 x 10^(-38)至 3.4 x 10^(+38)
double -1.7 x 10^(-308)至 1.7 x 10^(+308)
short -32768至32768
char -128至127
unsigned char 0至255
unsigned int 0至4294967295
unsigned short 0至65535
unsigned long 0至4294967295
unsigned long long 0至18446744073709551615
需要注意的是,大多數(shù)8位單片機(jī)C語言里面沒有l(wèi)onglong這個(gè)數(shù)據(jù)類型,而且int=short,
作者: coody_sz    時(shí)間: 2024-12-3 12:30
線性校準(zhǔn),乘一個(gè)校準(zhǔn)系數(shù)。
作者: Y_G_G    時(shí)間: 2024-12-6 12:52
先看你是怎么使用這些數(shù)據(jù)的,再根據(jù)單片機(jī)片上的資源來決定怎么做
如果是用STC的8051這樣的,片上資源是夠用的,直接上float數(shù)據(jù),如果有數(shù)碼管顯示之類的,再強(qiáng)制轉(zhuǎn)換就可以了
如果片上資源不夠用,又要求效率之類的,可以直接處理ADC數(shù)字量結(jié)果,也就是int型數(shù)據(jù),而不計(jì)算實(shí)際電壓
比如,你20.00V的ADC數(shù)字結(jié)果是2000,ADC的數(shù)量是1550,那就只針對這兩個(gè)數(shù)制進(jìn)行處理
而并不需要先換算成實(shí)際電壓再處理




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1