/* ADC routine */
/* Designed by Paolo Subiaco http://www.creasol.it */

#ifndef __ADC_H__
#define __ADC_H__

// Define MCU ADC resolution
#if MCU==4622 || MCU==4647 || MCU==4662
	#define ADC_RESOLUTION 9
#elif MCU==4623 || MCU==4624 || MCU==4664 || MCU==4665
	#define ADC_RESOLUTION 10
#else
	#error "Define ADC_RESOLUTION in adc.h"
#endif

// ADSR_VALUE == 0	fsys/2
// 						== 1	fsys/8
// 						== 2	fsys/32
#define ADSR_VALUE			1				// set the ADC clock

#define ADCR_NONE 		0x00	// No ADC pins used
#define ADCR_0        0x08	// Only PB0 as ADC input pin
#define ADCR_0_1			0x10	// PB0-PB1 as ADC input pins
#define ADCR_0_2			0x18	// PB0-PB2 as ADC input pins
#define ADCR_0_3			0x20	// PB0-PB3 as ADC input pins
#define ADCR_0_4			0x28	// PB0-PB4 as ADC input pins
#define ADCR_0_5			0x30	// PB0-PB5 as ADC input pins
#define ADCR_0_7			0x38	// PB0-PB7 as ADC input pins

#define ADCR_VALUE		ADCR_0_1	// set which analog inputs are used as ADC

void adcInit(void);
void adcStop(void);
uint adcRead(uchar channel, uchar n);	//n=number of time ADC is read

#endif // __ADC_H__

