datasheet

Atmega8a的采样(查询法)

2018-10-07来源: eefocus关键字:Atmega8a  采样  查询法

实现了ADC0和ADC1的切换采样,每个通道采样10次,累计满10次取一次平均,然后输出数据


Atmega8a的采样(查询法)


========================================


在main.c中:


int main(){


//此处都是初始化的函数


//...........................


while (1) 


    {


ad_calc();


_delay_ms(50);


PORTD |=(1<<5);


_delay_ms(50);


PORTD &=~(1<<5);


    }


}


========================================


void ad_calc()


{


switch(step)


{


case 1:


get;


step=2;


break;


 


case 2:


switch (ADC_sel(ch))//ch选择


{


case 0://ch=0


get;


result = ADCL;


result = result+(ADCH<<8);


if (adcnt


{


volta[adcnt++] = result;


if (adcnt==ADNUM)//采满


{


ADC_Average_Vol();


ch = ADC_sel(1);


adcnt=0;//采满的计数清零


}


}


break;//ch=0


 


case 1://ch=1


get;


result = ADCL;


result = result+(ADCH<<8);


if (adcnt


{


volta[adcnt++] = result;


if (adcnt==ADNUM)//采满


{




ADC_Average_Tmp();


ch = ADC_sel(0);


adcnt=0;//采满的计数清零


}


}


break; //ch=1


}


break; //step=2


}


}


========================================


uchar step=1,adcnt=0,ch=0;//AD相关


uint result=0;//存AD值


uint volta[20];//存电压


 


uint temper[10];//存温度


#define get while(!(ADCSRA & (1 << ADIF)))//若转化完成,ADIF=1




========================================


atmega8和16不同,16的采样可以由定时器触发


关键字:Atmega8a  采样  查询法

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/2018/ic-news100741552.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:stm32f407之ADC(操作寄存器)
下一篇:Atmega16中使用modbus协议

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

AVR(Atmega16A-PU)平衡车之一 : 熔丝位设置,烧录工具

最小系统原理图如下(买的小板,自己写程序)熔丝位的设置,如下图:CKSEL[3:0] = 1111  , 选择外部晶振作为时钟源SUT[1:0]  = 01 ,   使能BOD,这个功能好像不是那么必要,使用默认值也行CKOPT = 0 ,  时钟最高到16MHz, 好像对于CKSEL选择外部晶振的模式时,这个值也没有必要,再理解手册吧,先设上也没错。写到这里就顺便备份一下烧录工具的资料。用的是淘宝购买的 智峰软件 ZF-007 USB ISP下载线,烧录软件是progisp_v1.68
发表于 2018-06-21
AVR(Atmega16A-PU)平衡车之一 : 熔丝位设置,烧录工具

ATmega16A使用过程PC端口解决

最近忙活一个使用ATmega16A的项目,发现一个很奇怪的问题:M16的4个PC口(PC2、PC3、PC4、PC5,对应是JTAG的4个管脚)不能正常的使用,软件和熔断丝设置都没有问题,当禁止JTAG管脚的PC5管脚莫名其妙的电平输出不对(当PC5输出高电平时,管脚电压只有2.54V ),开始以为是熔丝位写错造成的,又重新设计一次,都没有问题,但是还是出现这样的问题,最后寻找到的方法是在软件来关掉JTAG,写入两次MCUCSR|=0x80;就可以成功,可以确定是JTAG没有关掉,现在了解到熔断丝确认是关掉的,可是就没有解释这种状况,现在猜测就是:IC可能是翻新的,软件关闭,写入两次MCUCSR |= 0x80;硬件描述
发表于 2018-06-21
ATmega16A使用过程PC端口解决

ATmega128 A/D 学习

;          DDRF |= (1 << PF1) | (1 << PF0);   //PF0、PF1(代表滑动变阻器)设置为输出        }//模拟比较器初始化函数void Compare_Init(){        SFIOR |= (1 << ACME);  //使用ADC多路复用器选择ADC的模拟输入端口             
发表于 2017-11-24

AVR单片机系列之-Atmega8A编程入门

前言:最近由于开始设计无刷直流电机电子调速器,参考网上的一些资料,选用了Atmega8A-AU单片机作为主控芯片。该芯片采用8位结构,最高主频16MHz(内部振荡器则8MHz),可实现2.7V-5.5V供电,单个IO口最大可支持40mA的拉/灌电流,更难能可贵的是,价格十分便宜,我在淘宝上面购买才3块多一片。之前从未使用过AVR系列的单片机,于是一开始编程也遇到了一些障碍,直至最终编写好第一个程序,整个过程在此记录下来,供以后参考。一、下载器首先我在百度上和阿莫论坛里面查询了一下AVR单片机的下载器,然后又在淘宝上面搜索对应的型号,发现目前国内主流的是ISP串口下载器,也就是和51单片机的下载器原理一样。于是乎在淘宝上面花了不到
发表于 2017-11-24
AVR单片机系列之-Atmega8A编程入门

ATMega8 查询方式 A/D转换测试程序

/********************************   ATMega8 查询方式 A/D转换测试程序   文件名:main.c   编译:WinAVR-20070122   硬件环境:CA-M8X   打开的开关如下             S6(1,2) - 外部4MHz晶振     
发表于 2016-10-28

英国比克科技推出新一代采样器扩展实时示波器

英国比克科技(Pico Technology)今天推出 PicoScope 9404 SXRTO(新一代采样器扩展实时示波器)。9404 型号具有四个5 GHz模拟带宽、12 位ADC、每个通道支持高达 500 MS/s 的实时采样和1 TS/s (1 ps) 的等效时间采样。无论是垂直电压分辨率,还是时间分辨率规格都是高性能宽带示波器的特性。  宽带输入以及高时间分辨率和电压分辨率可显示和精确测量快达 70 ps 的切换、时钟性能和千兆比特速率信号的眼图分析。小于 2 ps RMS 的触发抖动和 5 GHz 的内部触发支持当今高速串行数据系统的容限分析和特征描述以及无线通信频率的测量如应用广泛的 
发表于 2019-04-10
英国比克科技推出新一代采样器扩展实时示波器

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved