//----------------------------------------------------
/**
	\file		ctk/hw/adc_tlc1543in.h
	\ingroup	hardware
	\ingroup	all

	\brief		Knihovna obsluhy obvodu ADC TLC1543
				<<<	ALL >>>

	\author		ConTeK s.r.o.
	\version	01.01
	\date		13.03.2009
*/
//----------------------------------------------------
#ifndef _ADC_TLC1543IN_H_
#define _ADC_TLC1543IN_H_

#include <spi.h>

//----------------------------------------------------------
//!	Konstanta udava dobu v us, po kterou se bude cekat mezi povolenim ADC prevodniku (CS = 0) a odeslanim adresy

#define	ADC_ENABLE_WAIT				3


//----------------------------------------------------
//!	Kontext ADC

typedef struct _ADCDESC {
	
	SPIDESC * Spi;
	
	bool_t flRunning;
	
} ADCDESC;


extern ADCDESC gADC;



//----------------------------------------------------
/**
	\brief	Funkce vraci hodnotu ctenou z ADC prevodniku. 
	
	\param	adc
	\param	addr		Urcuje adresu analogoveho vstupu, ktery bude ihned odmeren,
						ale vracen az v pristim volani funkce.

	\return	Funkce vraci hodnotu minuleho odmeru.

	\note	Navratova hodnota odpovida analogovemu vstupu, jehoz adresa byla zvolena
			v minulem volani funkce, tzn. funkce pracuje se zpozdenim 1 volani.
	
*/
//----------------------------------------------------

uint16_t ADCRead(ADCDESC *adc, uint8_t addr);


//----------------------------------------------------
/**
	\brief	Inicializace ADC
*/
//----------------------------------------------------

void ADCInitialize( ADCDESC * adc, SPIDESC *Spi );


//----------------------------------------------------
/**
	\brief	Finalizace ADC
*/
//----------------------------------------------------

void ADCFinalize( ADCDESC * adc );


#endif // _ADC_TLC1543IN_H_
