请教一个ADC的问题
看到有文档中写,ADC的采样频率使用的是晶振频率,还提供分频功能。那么问题来了,如果使用了16M晶振,不分频,那么按一次采样花费13个采样周期,采样率很容易就上1M了啊。
那为什么还要提供分频功能,把采样率降下来呢? ADC太快了,采样保持电路跟不上 那分频的参数根据什么来选择?
另外如果这么写:int v
for (int i = 0; i < 100; i++)
v = ADCH;
v = ADCH;这句话表示采样会一直阻塞在这里,直到这次采样完成完成后,才会把数值放到v里面。还是说它直接从ADCH里面读,读到数字就直接放到v里面,不管本次采样是否真的完成了。 最近学习了下ADC,自己回答下吧。
1.因为有些信号频率没那么高,用不着高速采样,因为产生的大量数据也需要传送和存放,所以可以选分频把频率降下来。
2.可以判断ADIF位是否为1来判断完成一次采样
简单的做法就是loop_until_bit_is_set(ADCSRA, ADIF);
页:
[1]