极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12494|回复: 3

请教一个ADC的问题

[复制链接]
发表于 2015-7-8 21:14:24 | 显示全部楼层 |阅读模式
看到有文档中写,ADC的采样频率使用的是晶振频率,还提供分频功能。
那么问题来了,如果使用了16M晶振,不分频,那么按一次采样花费13个采样周期,采样率很容易就上1M了啊。
那为什么还要提供分频功能,把采样率降下来呢?
回复

使用道具 举报

发表于 2015-7-9 03:22:14 | 显示全部楼层
ADC太快了,采样保持电路跟不上
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-9 12:17:39 | 显示全部楼层
那分频的参数根据什么来选择?
另外如果这么写:
  1. int v[100]
  2. for (int i = 0; i < 100; i++)
  3. v[i] = ADCH;

复制代码
v = ADCH;这句话表示采样会一直阻塞在这里,直到这次采样完成完成后,才会把数值放到v里面。还是说它直接从ADCH里面读,读到数字就直接放到v里面,不管本次采样是否真的完成了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-31 23:39:52 | 显示全部楼层
最近学习了下ADC,自己回答下吧。
1.因为有些信号频率没那么高,用不着高速采样,因为产生的大量数据也需要传送和存放,所以可以选分频把频率降下来。
2.可以判断ADIF位是否为1来判断完成一次采样
简单的做法就是loop_until_bit_is_set(ADCSRA, ADIF);

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 18:29 , Processed in 0.051288 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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