/*-----------------------------------------------------------------------+
|             DEPARTAMENTO MECANICA UNIVERSIDADE AVEIRO                  |
|                                                                        |
| Nome:                                                                  |
|       David Manuel Costa Gameiro          N:20281                      |
|       Filipe Carvalho Mostardinha         N:22085                      |
|                                                                        |
| Data:   10/Maio/2004     Nome Ficheiro: adc.h                          |
+-----------------------------------------------------------------------*/



#ifndef ADC_H

#define ADC_H


typedef unsigned char byte;

/*--------------------------------------------------------------------------+
|                            Declaracao de Mascaras                         |
+--------------------------------------------------------------------------*/

enum ADC_CONFIG_BITS
{

	ADC0_FOSC_BITS = 0b11000000,//0bxx000000 selecao da velocidade de conversao, ADCS1:ADCS0
	ADC_CH_BITS    = 0b00111000,//0b00xxx000 bits com os canais activos
	ADC1_ADFM_BIT  = 0b00000100,//0b00000x00 valores em ADRESL(1) ou ADRESH(0)
	ADC1_FOSC_BIT  = 0b00000010,//0b000000x0 bit ADCON1 seleccao velocidade ADCS2
};



/*-------------------------------------------------------------------------+
|              void SetADC(byte config1, byte config2)                     |
| Input: config1 - 	configuracao da ADC velocidade, juncao do enumerador   |
|                    ADC_CONFIG_FLAGS                                      |
|        config2 - quais os pinos que vao ser entradas analogicas          |
|                                                                          |
| Sem outputs                                                              |
|                                                                          |
| Objectivo: Configura os diversos registos do modulo ADC                  |
+-------------------------------------------------------------------------*/

void SetADC(byte, byte);


/*-------------------------------------------------------------------------+
|                     int LerADC(byte canal)                              |
|                                                                          |
| Input: Canal - numero do canal que pretendemos converter                 |
|                                                                          |
| Output: valor lido para aquele canal                                     |
|                                                                          |
| Objectivo: Activa o canal 0 a 4 do PIC e le o seu valor                  |
+-------------------------------------------------------------------------*/

int LerADC(byte canal);

#endif
