搜档网
当前位置:搜档网 › IAR FOR AVR128 AD中断

IAR FOR AVR128 AD中断

IAR FOR AVR128 AD中断
IAR FOR AVR128 AD中断

/************转换结束进入中断处理***************/

#include

#define uchar unsigned char

#define uint unsigned int

uchar temph,templ;

void port_init()

{

DDRE=0XFF;

PORTE=0XFF;

DDRF&=(0<<0);

PORTF&=(0<<0);

}

void ad_init()

{

ADMUX=0x60;//参考电压A VCC,右对齐,ADC0口

ADCSRA=0x8e;//ADC使能,ADC中断使能,64分频

SREG=0x80;//打开总中断

}

uint read_data()

{

ADCSRA|=(1<<6);//开始ADC转换

while((ADCSRA&0x40)==0x40);//等待转换(转换过程中ADCS为1,结束为0)

//转换结束,跳到中断

return temph;

}

void main()

{

port_init();

ad_init();

uchar num;

while(1)

{

num=read_data();

PORTE=~(num);

}

}

#pragma vector=ADC_vect

__interrupt void ADC_server() {

templ=ADCL;//取值

temph=ADCH;

}

相关主题