#define _ADC_LOCAL
#include "ADC.h"
#include "TimeManage.h"
#include "Uart.h"
void InitADC(void)
{
ADCTimerTemp=0;
ADCResult=0;
ADMUX |= BIT(ADLAR);//外部基准源|左对齐|通道0
ADCSRA = BIT(ADEN)|BIT(ADSC)|BIT(ADATE)|BIT(ADIE);//使能ADC|连续转换|使能ADC中断|2分频
//添加循环任务
TimeManage TempTimePara;
TempTimePara.SecOrMs = 0; //计时单位,0-秒 1-毫秒
TempTimePara.SpringMsgID = 0x12;//查询超时
TempTimePara.CurTime = 1; //当前计时器数值,递减到零
TempTimePara.TimeConst = 1;
AddTimer(&TempTimePara);
}
SIGNAL(SIG_ADC)
{
static uchar Num=0;
static uint DataTemp=0;
DataTemp+=ADCH;
if(Num>6)
{
ADCSRA =0;
Num=0;
DataTemp/=8;
ADCResult=DataTemp;
DataTemp=0;
}
else
{
Num++;
}
}
评论0