标题:
单片机电压表误差校准怎么处理
[打印本页]
作者:
samxon
时间:
2024-12-1 21:54
标题:
单片机电压表误差校准怎么处理
我在校准电压误差时时我想这样处理的。
基准电压20伏, 如果电压表显示大于20伏,我就在ADC 结果内减去误差数。
如果电压表显示小于20伏,我就在ADC结果内加上误差数。
从而达到校准电压表的目的。
请问在实际存储这个误差数时,我如何存储正或者时负数呢。或者大家用的其它办法。谢谢大家指教。
作者:
frank_tw
时间:
2024-12-2 02:30
s bit sxxx xxxx
正数 0000 0000 = 0
负数 1000 0000 =-1
作者:
wufa1986
时间:
2024-12-2 08:07
用指针强制转换即可,比如一个浮点数,你用unsigned char指针指向他的地址,就可以提取4bytes出来存储,同理用浮点指针指向这个地址,就可以取出浮点数
作者:
jjy1039
时间:
2024-12-2 08:36
参考数据类型,一般来说直接用有符号的数值就行了,定义数值类型的时候不加unsigned。
C语言的数值类型如下:
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
需要注意的是,大多数8位单片机C语言里面没有longlong这个数据类型,而且int=short,
作者:
coody_sz
时间:
2024-12-3 12:30
线性校准,乘一个校准系数。
作者:
Y_G_G
时间:
2024-12-6 12:52
先看你是怎么使用这些数据的,再根据单片机片上的资源来决定怎么做
如果是用STC的8051这样的,片上资源是够用的,直接上float数据,如果有数码管显示之类的,再强制转换就可以了
如果片上资源不够用,又要求效率之类的,可以直接处理ADC数字量结果,也就是int型数据,而不计算实际电压
比如,你20.00V的ADC数字结果是2000,ADC的数量是1550,那就只针对这两个数制进行处理
而并不需要先换算成实际电压再处理
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1