访问手机版页面
你的位置:老古开发网 > AVR单片机 > ATMega8系列单片机 > 正文  
atmega8 例程:AD中断方式采集
内容导读:
/************************************************************ 函数库说明:ATMEGE8 AD模数转换 * 版本: v1.0 * * 说明: 中断方

/***********************************************************

* 函数库说明:ATMEGE8 AD模数转换

* 版本: v1.0

*

* 说明: 中断方式AD采集

*

* 版本更新: 详见readme.txt

*

************************************************************

*注意: res PC5

* CE PB0

* RST PB1

* DC PB2

* SDIN PB3

* SCLK PB4

***********************************************************/

#include "includes.h"

/***********************************************************

** 名 称:void AD_Init(void)

** 功 能:AD初始化

** 入口参数:无

** 出口参数:无

** 使用说明:无

**********************************************************/

void AD_Init(void)

{

//参考电压AREF,左对齐,ADC5单端输入

ADMUX |= (1 << ADLAR) | (1 << MUX2) | (1 << MUX0);

//AD使能, 连续转换,中断使能,32分频, 6M / 32 = 187.5khz

ADCSRA |= (1 << ADEN) | (1 << ADFR) | (1 << ADIE) | (1 << ADPS2) | (1 << ADPS0);

//AD开始转换

ADCSRA |= (1 << ADSC);

}

int main(void)

{

//LCD初始化

LCD_Init();

//AD初始化

AD_Init();

LCD_Write_Chinese_String(0, 0, 12, 5, Chinese_Font, 0, 0);

//开总中断

sei();

while(1)

{

}

return 0;

}

int result = 0;

char buf[] = "5.00V";

SIGNAL(SIG_ADC)

{

result = ADCH;

result = result * 500.0 / 255;

//数据更新

buf[0] = result / 100 + '0';

buf[2] = result / 10 % 10 + '0';

buf[3] = result % 10 + '0';

//数据显示

LCD_Write_English_String(0, 3, buf);

}


标签: atmega8,采集,ad中断方式,
来源:互联网 作者:karen 时间:2018/12/24 9:40:01
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐