发新帖我要提问
12
返回列表
打印

实现单片机的ADC模块的数据快速采集

[复制链接]
楼主: kangzj
手机看帖
扫描二维码
随时随地手机跟帖
21
hanwe| | 2020-8-26 22:02 | 只看该作者 回帖奖励 |倒序浏览

                DataBuf[2*i]  =ADRESH;
                DataBuf[2*i+1]=ADRESL;        

这两个寻址操作在8位机上就是个不在乎时间的做法

使用特权

评论回复
22
kangzj|  楼主 | 2020-8-26 22:12 | 只看该作者
关于20MHz 晶振是否起作用的问题,本diy 是带 usb 数据传输的。晶振一定是起作用了。  不过,我可以将晶振拔了,试试。

使用特权

评论回复
23
kangzj|  楼主 | 2020-8-26 22:16 | 只看该作者
我这个diy就是专用这个mcu 进行数据采集,其他事情由usb连的host去做。故mcu的 负担不会太重的。

使用特权

评论回复
24
chenho| | 2020-8-26 22:21 | 只看该作者
这两行代码很费时,也许可修改试一下。

使用特权

评论回复
25
stly| | 2020-8-26 22:32 | 只看该作者
看看这两行代码到底能耗多少时钟周期。

使用特权

评论回复
26
kangzj|  楼主 | 2020-8-26 22:36 | 只看该作者
我是初学者,如何用汇编指令得到的数据变为数组,还要学习。请老师们 赐教一些相关的代码?  

使用特权

评论回复
27
houcs| | 2020-8-26 22:42 | 只看该作者
采样时间的作用是让放大器稳定,电容充电,还考虑到温度的影响。

使用特权

评论回复
28
ousj| | 2020-8-26 22:45 | 只看该作者
转化时间是指在输入稳定,电容充电完成后,开始转化到转化完成的时间。

使用特权

评论回复
29
wangzsa| | 2020-8-26 22:48 | 只看该作者

假设你的外部晶振20M,没有倍频,那么Fosc = 20M, TAD = 1/(20M/16) = 0.8us .
采样保持时间如你配置的 8TAD = 6.4us;
转换时间 最小是11TAD = 8.8us;
6.4us+8.8us = 15.2us.

使用特权

评论回复
30
lium| | 2020-8-26 22:56 | 只看该作者
不应该差那么多的,检查一下你的时钟。

使用特权

评论回复
31
kangzj|  楼主 | 2020-8-26 23:01 | 只看该作者

好的,我明天去单位试一下,多谢各位大侠了哈        

使用特权

评论回复
32
CoolSilicon| | 2020-8-27 10:36 | 只看该作者
20Mhz, 0.5ms一个数据, 明显的是时钟不对嘛..
首先你检查系统时钟是多少, 其次, 看看ADC模块用了什么时钟,有无分频.

使用特权

评论回复
33
a511484095| | 2020-8-27 14:36 | 只看该作者
你这个ADGO完全没必要再加进去了,不然每次循环都要执行一次ADGO。

使用特权

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

本版积分规则