adc.c

来自「用ICC编写的程序包括SPI」· C语言 代码 · 共 47 行

C
47
字号

#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 + =
减小字号Ctrl + -
显示快捷键?