打印

AD采样问题请教

[复制链接]
995|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
拿起书本|  楼主 | 2013-10-13 14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定义数组unsingned int xdata a[1024];存放数据
程序中将每次采样值存入数组中,采样值用右端对齐,
a=adc0&0xfff;
1024个数据采完后用printf("%u",a);观察采样值,有的正常(1V输入对应1600多),有几个值很大,30000多,不知怎么回事啊?
a[i]最大应该不会超过0xfff(4095)啊,怎么会有30000多的值呢,百思不解!

相关帖子

沙发
tianli1980| | 2013-10-13 19:42 | 只看该作者
楼主仔细检查下,看看是不是操作上有什么问题?

使用特权

评论回复
板凳
zhangmangui| | 2013-10-13 21:05 | 只看该作者
从unsigned int来说最大65535  是30000没啥问题
AD采集中的30000   确实有些奇怪  
是不是别的地方做了修改

使用特权

评论回复
地板
拿起书本|  楼主 | 2013-10-14 00:03 | 只看该作者
操作没问题,按照例程,用定时器3定时采样产生中断,每次数据存入数组,到1024停止采样显示,发现有的数据很大(32768?40000多的都有),如果用printf("%u",a[i]);那些大数字的位置就是负值,不知什么原因

使用特权

评论回复
5
zhangmangui| | 2013-10-14 09:26 | 只看该作者
拿起书本 发表于 2013-10-14 00:03
操作没问题,按照例程,用定时器3定时采样产生中断,每次数据存入数组,到1024停止采样显示,发现有的数据 ...

那你的定时器中断的时候  还要确定一下AD是否转换结束   中断中应该开启转换  转换结束后触发AD中断
在AD中断中将数存入  这样应该就没啥问题了

使用特权

评论回复
6
拿起书本|  楼主 | 2013-10-14 14:45 | 只看该作者
,如果用printf("%d",a[i]);那些大数字的位置就是负值,不知何解?

使用特权

评论回复
7
shenmu2012| | 2013-10-14 22:55 | 只看该作者
最大也不会超过4095的啊,数据类型的用错了吧

使用特权

评论回复
8
shenmu2012| | 2013-10-14 22:56 | 只看该作者
或者把你采集到额数据变成了补码的,30000的补码不就是25535,还是不对啊:L

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:好好学习,天天向上!

519

主题

4195

帖子

31

粉丝