社区
单片机/工控
帖子详情
ad采样值超范围
goodperson
2013-04-03 10:14:24
单片机f020,
定义数组unsingned int xdata a[1024];存放数据
程序中将每次采样值存入数组中,采样值用右端对齐,
a=adc0&0xfff;
1024个数据采完后用printf("%u",a);观察采样值,有的正常(1V输入对应1600多),有几个值很大,30000多,不知怎么回事啊?
a[i]最大应该不会超过0xfff(4095)啊,怎么会有30000多的值呢,百思不解!
...全文
747
12
打赏
收藏
ad采样值超范围
单片机f020, 定义数组unsingned int xdata a[1024];存放数据 程序中将每次采样值存入数组中,采样值用右端对齐, a=adc0&0xfff; 1024个数据采完后用printf("%u",a);观察采样值,有的正常(1V输入对应1600多),有几个值很大,30000多,不知怎么回事啊? a[i]最大应该不会超过0xfff(4095)啊,怎么会有30000多的值呢,百思不解!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
goodperson
2013-04-08
打赏
举报
回复
(具体在EMI0CF中设置,以前是EMI0CF=0x3f,今天改成EMI0CF=0x37)问题已经解决,但不知是什么原因,为什么全用外部64Kram不行,非要低4K用内部
goodperson
2013-04-08
打赏
举报
回复
1. 确认AD采样是否正常?正常 2. 确认单片机的RAM空间大小,是否够分配定义的数组大小(外加64K够了) 3 printf("%u",a); ‘a’是个数组名,打印的是个地址值,这地方敲错了,a[i]
ymm198606
2013-04-08
打赏
举报
回复
1. 确认AD采样是否正常? 2. 确认单片机的RAM空间大小,是否够分配定义的数组大小 3 printf("%u",a); ‘a’是个数组名,打印的是个地址值
lf_kyo
2013-04-07
打赏
举报
回复
如果每次存入数组的数据都有 a=adc0&0xfff;操作,那数组中的数据不可能大于4095。 你的程序是否有问题? 不知道f020是什么单片机,unsingned int xdata a[1024] 这个要申请1024*4=4096Byte的RAM,硬件资源够么? 改用unsingned short xdata a[100]试试?
goodperson
2013-04-07
打赏
举报
回复
因为以前都是用片内自带的4Kram作为采样数据存储,没出现过这种问题。想是不是我的片外ram的原因,(因为这次连续采样数据较多,且在写如USB前还用了20K缓存,因此加了一片外ram),想问题可能在这里,今天上午将ram设置成低于4K用片内,超出4K范围用片外ram(具体在EMI0CF中设置,以前是EMI0CF=0x3f,今天改成EMI0CF=0x37),以前设置是忽略片内4Kram,全部用片外64Kram。程序其他地方没动,问题竟然没了,虽然具体原因还不太清楚。
Kwolve
2013-04-06
打赏
举报
回复
转换前先将数据清0,然后在转换,转换失败或者超时的时候强制赋值0xFFF或者是0/
goodperson
2013-04-06
打赏
举报
回复
,如果用printf("%d",a[i]);那些大数字的位置就是负值,不知何解?
Dson2020
2013-04-05
打赏
举报
回复
应该看看是否溢出了
lbing7
2013-04-04
打赏
举报
回复
如果是溢出的话,那查一下看ADC允许接负的参考电压么?
goodperson
2013-04-04
打赏
举报
回复
操作没问题,按照例程,用定时器3定时采样产生中断,每次数据存入数组,到1024停止采样显示,发现有的数据很大(32768?40000多的都有),如果用printf("%u",a[i]);那些大数字的位置就是负值,不知何解?
dceacho
2013-04-04
打赏
举报
回复
32768?
net_friends
2013-04-04
打赏
举报
回复
操作有问题哦
基于 16 位 88 通道 DAS
AD
7606
AD
76068通道数据采集系统(DAS)集成16 位双极性同步
采样
SAR
AD
C 和片内过压保护功能,可大大简化信号调理电路,并减少器件数量、电路板面积和测量保护板的成本。高 集成度使得每个
AD
7606 只需 9 个低
值
陶瓷去耦电容...
计算机控制课设——多路数据采集系统的设计.doc
能够通过人机交互接口设置信 号发生器参数和数据采集器的告警上下限,并能够通过发光二极管给出上下限告警(如 超上限则用红色发光二极管报警,超下限用绿色发光二极管报警)。 2.2实现方法 采用proteus仿真软件实现...
AD
和DA转换-第1季第16部分
本课程是《朱有鹏老师单片机完全学习系列课程》第1季第16个课程,主要讲解
AD
转换和DA转换。目标是理解模拟量和数字量的概念,并且学会使用
AD
转换来采集现实世界的模拟量。
基于AT89S52 单片的频率计
外部输入每个机器周期被
采样
一次,这样检测一次从1 到0 的跳变至少需要2 个机器周期(24 个振荡周期) ,所以最大计数速率为时钟频率 的1/24 (使用12MHz 时钟时,最大计数速率为500 KHz) 。定时/计数器的工作由 相应的...
嵌入式系统之
AD
C
采样
嵌入式系统往往会有模拟信号的采集,比如模拟传感器温度、压力、流量、速度、光强等模拟量,经过放大整形滤波电路后送给
AD
C芯片,将电信号转转变成离散的数字量这个过程称之为
AD
采样
,
AD
采样
应用广泛,普遍遵循
采样
...
单片机/工控
27,373
社区成员
28,771
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章