好文档 - 专业文书写作范文服务资料分享网站

AVR单片机学习十ATmega16ADC - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

全是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 - 图文

全是0是连续转换模式。就是转换率125/13大约9.15如果连续模式就是转换结束立即进入中断然后中断又立即启动下次转换。所以转换ADC转换频率等于进入中断的频率。模拟比较器就设计到自带的模拟比较器的功能外部中断0来一个外部中断触发一次转换下
推荐度:
点击下载文档文档为doc格式
5rxot6mitj5dq8n1sig30fluh9boav00ul9
领取福利

微信扫码领取福利

微信扫码分享