智能车制作

标题: 为什么xs128AD转换取20次平均值会出现负值 [打印本页]

作者: 1023968138    时间: 2014-4-5 18:20
标题: 为什么xs128AD转换取20次平均值会出现负值
xs128AD单次AD转换不会出现负值,可是取20次平均值之后就会出现负值?

作者: 守护者    时间: 2014-4-5 18:20
20次和超范围了,变成负数,再除以20就还是负数
作者: 守护者    时间: 2014-4-5 18:35
你20次的和超过范围了,就变成负数了
作者: 1023968138    时间: 2014-4-5 19:49
守护者 发表于 2014-4-5 18:35
你20次的和超过范围了,就变成负数了

好像不对啊,我取得值是1804,1804*20=36080<float型65536

作者: 守护者    时间: 2014-4-5 20:00
1023968138 发表于 2014-4-5 19:49
好像不对啊,我取得值是1804,1804*20=36080

你确定???
作者: 守护者    时间: 2014-4-5 20:05
1023968138 发表于 2014-4-5 19:49
好像不对啊,我取得值是1804,1804*20=36080

你采集的AD值不应该是float型吧
作者: 1023968138    时间: 2014-4-5 21:17
守护者 发表于 2014-4-5 20:05
你采集的AD值不应该是float型吧

AD值是int型,相加之后直接给float型,这样没错吧

作者: 守护者    时间: 2014-4-5 21:26
1023968138 发表于 2014-4-5 21:17
AD值是int型,相加之后直接给float型,这样没错吧

不对,你应该先转化成float型再相加
作者: youranlala    时间: 2014-4-15 08:07
使用无符号长整型吧,这样就不会溢出,出现负数




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2