采样值超范围

[复制链接]
 楼主| 发表于 2013-4-4 22:28 | 显示全部楼层 |阅读模式
单片机Silabs-C8051F020,
定义数组unsingned int xdata a[1024];存放数据
程序中将每次采样值存入数组中,采样值用右端对齐,
a=adc0&0xfff;
1024个数据采完后用printf("%u",a);观察采样值,有的正常(1V输入对应1600多),有几个值很大,30000多,不知怎么回事啊?
a[i]最大应该不会超过0xfff(4095)啊,怎么会有30000多的值呢,百思不解!
 楼主| 发表于 2013-4-7 18:56 | 显示全部楼层
因为以前都是用片内自带的4Kram作为采样数据存储,没出现过这种问题。想是不是我的片外ram的原因,(因为这次连续采样数据较多,且在写如USB前还用了20K缓存,因此加了一片外ram),想问题可能在这里,今天上午将ram设置成低于4K用片内,超出4K范围用片外ram(具体在EMI0CF中设置,以前是EMI0CF=0x3f,今天改成EMI0CF=0x37),以前设置是忽略片内4Kram,全部用片外64Kram。程序其他地方没动,问题竟然没了,虽然具体原因还不太清楚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

9

帖子

0

粉丝
快速回复 返回顶部 返回列表