//**********************************************************************************
//*************** FUNCIÓN DE ADC RESOLUCIÓN 10 BITS REGISTRO ÚNICO SIN SIGNO *******
//**********************************************************************************
UINT16 ADCRead(UINT8 channel){
switch (channel) {
case 0: ATD1PE_ATDPE0 = 1; //Igual que el anterior, pero sin alterar la configuración de todo el puerto
PTBDD_PTBDD0 = DDIR_OUTPUT; //El pin 3 del puerto b es de Entrada
ATD1SC = 0; //Selecciona el canal a escanear
break;
case 1: ATD1PE_ATDPE1 = 1; //Igual que el anterior, pero sin alterar la configuración de todo el puerto
PTBDD_PTBDD1 = DDIR_OUTPUT; //El pin 3 del puerto b es de Entrada
ATD1SC = 1; //Selecciona el canal a escanear
break;
case 2: ATD1PE_ATDPE2 = 1; //Igual que el anterior, pero sin alterar la configuración de todo el puerto
PTBDD_PTBDD2 = DDIR_OUTPUT; //El pin 3 del puerto b es de Entrada
ATD1SC = 2; //Selecciona el canal a escanear
break;
case 3: ATD1PE_ATDPE3 = 1; //Igual que el anterior, pero sin alterar la configuración de todo el puerto
PTBDD_PTBDD3 = DDIR_OUTPUT; //El pin 3 del puerto b es de Entrada
ATD1SC = 3; //Selecciona el canal a escanear
break;
case 4: ATD1PE_ATDPE4 = 1; //Igual que el anterior, pero sin alterar la configuración de todo el puerto
PTBDD_PTBDD4 = DDIR_OUTPUT; //El pin 3 del puerto b es de Entrada
ATD1SC = 4; //Selecciona el canal a escanear
break;
case 5: ATD1PE_ATDPE5 = 1; //Igual que el anterior, pero sin alterar la configuración de todo el puerto
PTBDD_PTBDD5 = DDIR_OUTPUT; //El pin 3 del puerto b es de Entrada
ATD1SC = 5; //Selecciona el canal a escanear
break;
}
ATD1C_ATDPU = 1; //Habilita o deshabilita el módulo
ATD1C_DJM = 1; //Ajuste a la derecha o a la izquierda del registro 10bits en 16 bits
ATD1C_RES8 = 0; //Selecciona entre 8 o 10 bits de conversión
ATD1C_SGN = 0; //Conversión con signo o sin signo
ATD1C_PRS = 0; //Preescalar factor para el reloj de conversión
ATD1SC_ATDCO = 1; //0=Conversión Continua 1=Conversión única
while((ATD1SC & 0x80) != 0x80); //Espera hasta que la conversión sea completa
ATD1C_ATDPU = 0; //deshabilita el módulo para poder entrar en sleep
return ATD1RH*0XFF+ATD1RL; //El resultado queda en esta variable
}