📄 adc.c
字号:
#include "ADC.h"
const unsigned char ADChannel[]={0,1,4,5,0xff};
unsigned int AdValue[8];
unsigned char AdP=0;
unsigned char AdFlag=0;
//ADC initialisation
// Conversion time: 28uS
void adc_init(void)
{
ADCSR = 0x00; //disable adc
ADMUX = 0x40; //select adc input 0
ACSR = 0x80;
ADCSR = 0x8C;
AdP=0;
}
#pragma interrupt_handler adc_isr:15
void adc_isr(void)
{
//conversion complete, read value (int) using...
// value=ADCL; //Read 8 low bits first (important)
// value|=(int)ADCH << 8; //read 2 high bits and shift into top byte
unsigned int value;
value=ADCL;
value|=(int)ADCH<<8;
AdValue[ADChannel[AdP]]=value;
AdP++;
if (ADChannel[AdP]!=0xff)
{
ADMUX=0x40|ADChannel[AdP];
ADCSR|=BIT(ADSC);
}
else
{
AdP=0;
AdFlag=1;
}
}
void adc_start(void)
{
ADMUX=0x40|ADChannel[AdP];
ADCSR|=BIT(ADSC);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -