第一范文网 - 专业文章范例文档资料分享平台

AVR单片机学习十ATmega16ADC - 图文

来源:用户分享 时间:2025/5/20 10:39:30 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

全是0 是连续转换模式。就是 转换率 125/13 大约9.15

如果连续模式 就是转换结束 立即进入中断 然后中断又立即启动下次转换。所以转换ADC转换频率等于进入中断的频率。

模拟比较器 就设计到自带的模拟比较器的功能 外部中断0 来一个外部中断 触发一次转换 下面都是定时器、计数器的中断。 最常用的就是连续转换模式。 adc.h key.h 是自己编写的头文件 先将

ADC采样到的数据缓冲起来 8个结果都暂存起来

均值滤波 read_adc()

返回read_BUF

voltile 每次都从寄存器读数据不是从缓存读 STATIC这个变量尽在本文件有效 static voltile unsigned int adc_buffer[MAX_ADC_BUFFER] MAX_ADC_BUFFER 是宏 9

void int_adc(void) {

ADUMX |= (1 ) //是参考电压源 2.56V

ADCSRA |= (1

// ADC使能 ADC 考试转换 连续转换128分频(最后3个置1) }

unsigned int read_adc(void){

return adc_buff(0); }

中断使能 //ADC 转换完成中断 SIGNAL(SIG_ADC){ unsigned char i;

unsigned

int temp sum =0; temp =ADC

;//ADC数据给了temp 注意这个结果是右对齐的因为我们没有置位 左对齐

for(i=1;i

//这里是一个求和操作 adc_fuffer=

adc_buffer[i+1];//顺序的将元素向前移动一个位置 sum

+= ADC_BUFFER[i]; //累加起来 }

// 将本次转换的结果的值

保存在最末的位置

adc_buffer() = temp;

sum + = adc_buffer(maxacdbuffer -1);//本次的结果 8次的求和

下面这个是除以8 相当于 右移动3位 adc_buffer[[0] = adcbuffer >;>; 3

//这样就完成对ADC 转换的结果进行了 }

平滑滤波

搜索更多关于: AVR单片机学习十ATmega16ADC - 图文 的文档
AVR单片机学习十ATmega16ADC - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5rxot6mitj5dq8n1sig30fluh9boav00ul9_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top