AD采样问题请教

2019-08-08 13:59发布

定义数组unsingned int xdata a[1024];存放数据
程序中将每次采样值存入数组中,采样值用右端对齐,
a=adc0&0xfff;
1024个数据采完后用printf("%u",a);观察采样值,有的正常(1V输入对应1600多),有几个值很大,30000多,不知怎么回事啊?
a[i]最大应该不会超过0xfff(4095)啊,怎么会有30000多的值呢,百思不解!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
tianli1980
1楼-- · 2019-08-08 19:50
 精彩回答 2  元偷偷看……
zhangmangui
2楼-- · 2019-08-09 01:33
从unsigned int来说最大65535  是30000没啥问题
AD采集中的30000   确实有些奇怪  
是不是别的地方做了修改
拿起书本
3楼-- · 2019-08-09 03:26
操作没问题,按照例程,用定时器3定时采样产生中断,每次数据存入数组,到1024停止采样显示,发现有的数据很大(32768?40000多的都有),如果用printf("%u",a[i]);那些大数字的位置就是负值,不知什么原因
zhangmangui
4楼-- · 2019-08-09 06:45
拿起书本 发表于 2013-10-14 00:03
操作没问题,按照例程,用定时器3定时采样产生中断,每次数据存入数组,到1024停止采样显示,发现有的数据 ...

那你的定时器中断的时候  还要确定一下AD是否转换结束   中断中应该开启转换  转换结束后触发AD中断
在AD中断中将数存入  这样应该就没啥问题了
拿起书本
5楼-- · 2019-08-09 09:46
,如果用printf("%d",a[i]);那些大数字的位置就是负值,不知何解?
shenmu2012
6楼-- · 2019-08-09 14:01
 精彩回答 2  元偷偷看……

一周热门 更多>