📄 ad._c
字号:
#include "ad.h"
unsigned int AD_value[AD_size]={0,0,0,0,0,0,0,0};
unsigned char ad_index;
const unsigned char ad_channel[AD_size]={0,1,2,3,4,5,6,7};
unsigned char ad_frist_flag;
#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
//CLI();
if(ad_frist_flag)
ad_frist_flag=0;
else
{
AD_value[ad_index]=ADCL;
AD_value[ad_index]|=(int)AD_value[ad_index]<<8;
ad_index++;
if(ad_index<sizeof(ad_channel))
{
ADMUX|=ad_channel[ad_index];
ADCSRA|=BIT(ADSC);
}
}
//SEI();
}
void adc_init(void)
{
ADCSR = 0x00; //disable adc
//select adc input 0
ADMUX=BIT(REFS0);
ADCSR=BIT(ADPS2)|BIT(ADEN)|BIT(ADIE);
ad_frist_flag=1;
}
void adc_start(void)
{
ADMUX|=ad_channel[ad_index++];
ADCSR|=BIT(ADSC);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -