#include <xc.h>
#include "ConfigBits.c"
#include <stdlib.h>
#include <string.h>
#include <plib/adc.h>
unsigned char ADCStringVal[4];
#define _XTAL_FREQ 20000000 //--Velocidad a la que funciona el micro
/**** DEFINICION DE FUNCIONES ****/
void ConfigSCI(void);
void ConfigADC(void);
/**** FUNCION DE CONFIGURACION MODULO USART ****/
void ConfigSCI(void)
{
TXSTAbits.BRGH = 1; //--High Baud Rate
TXSTAbits.SYNC = 0; //--Asynchronous mode
TXSTAbits.TXEN = 1; //--Transmit enable
RCSTAbits.CREN = 1; //--Enables receiver
RCSTAbits.SPEN = 1; //--Serial port enabled
SPBRG = 64; //--19200 baudios
}
/**** FUNCION DE CONFIGURACION MODULO ADC ****/
void ConfigADC(void)
{
ADCON0 = 0x01; //--Canal 0, modulo habilitado
ADCON1 = 0x0E; //--AN0, Vdd, Vss
ADCON2 = 0xB6; //--Justificado a la derecha, 16 Tad, Fosc/64
SetChanADC(ADC_CH0); //--Selecciono canal a convertir
}
/**** FUNCION PRINCIPAL ****/
void main(void)
{
unsigned int Result_Conversion;
TRISA0 = 1; //--Bit 0 puerta A configurado como entrada
ConfigADC(); //--Configuramos el modulo ADC
ConfigSCI(); //--Configuramos el modulo USART
while(1)
{
ConvertADC(); //--Empezamos la conversion
while(BusyADC() == 1){} //--Esperamos que finalice la conversion
Result_Conversion = ReadADC(); //--Leemos el resultado de la conversion
while(PIR1bits.TXIF == 0){} //--Esperamos a que el transmisor este libre
TXREG
= (itoa(ADCStringVal
,Result_Conversion
,10)); //--Enviamos el resultado de la conversion }
}