#ifndef _DRVADC_H
#define _DRVADC_H

/****************************************************************************
 *
 * Projekt			:	Glacier Batterieboxdeckel Prüfgerät
 * Dateiname		:	drvAdc.h
 * Autor			:	orginal MHoffmann, abgeändert für dieses Projekt Irene Saxer
 * Erstellungsdatum	:	17.04.2019
 * Beschreibung		:	"Treiber fuer Zugriffe auf den internen ADC"
 *
 *
 * Versionsgeschichte
 * 	Revision 1.0	17.04.2019 SAI erste Version
 *
 ****************************************************************************/

/****************************************************************************/
/* COMPILER Direktiven */

/****************************************************************************/
/* INCLUDE Dateien */
#include "Common.h"
#include "DrvGpio.h"
#include "ObjSample.h"

/****************************************************************************/
/* KONSTANTEN */
#define ADC_REF_AVCC 	0x00		// REFS1 und REFS0 auf 0 setzen für externe AREF (3V3)

#define DRVADC_FLAG_USE_NO_CALIB	0x00
#define DRVADC_FLAG_USE_CALIB		0x01

// Konfigurationsregister des externen ADC
#define CONFIG_MSB 0xC3		// Bits 15-8 des Config Registers des ADS1118, AIN0 enabled, Singleshot Mode, Mode Bit 1, FSR +/- 4.096 V
#define CONFIG_LSB 0x8A		// Bits 7-0 des Config Registers des ADS1118, 128SPS, ADC Mode enabled, Pullup Resistor enabled

/****************************************************************************/
/* Globale Variablen */

/****************************************************************************/
/* Funktionen */
void DrvAdc_Select(uint8_t u8_type);
void DrvAdc_Stop(void);
uint16_t DrvAdc_Read(void);
int16_t DrvAdc_ReadPoti(uint8_t u8_idx, uint8_t u8_FlagUseCalib);

#endif	// #define _DRVADC_H
