Code: Select all
sbit ADGD at GO_DONE_bit;
unsigned int voltage_val;
unsigned char ADHIGH, ADLOW;
void main() {
char txt[7];
OSCCON=0b01110110;
LATA=0x00;
ADCON2 = 0b10101111;// ;right justify, Frc, 12 TAD ACQ time
ADCON1 = 0b00000000;// ;ADC ref = Vdd,Vss
TRISA=0xFF;
ANSEL=0x00;
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;
ADCON0=0b00000001;// AN1, ADC on
/*
0000 = AN0
0001 = AN1
0010 = AN2
0011 = AN3
0100 = AN4
0101 = AN5(1)
*/
ADC_Init();
UART1_Init(115200); // initialize UART1 module
Delay_ms(100);
do {
voltage_val = ADC_Read(1); // Get 10-bit results of AD conversion
IntToStr(voltage_val, txt);
UART_Write_Text("CH1:");
UART_Write_Text(txt);
UART1_Write(0x0D);
UART1_Write(0x0A);
} while(1);
//////////////// SECOND ROUTINE ///////////////////
ADGD=1;
UART1_Init(115200); // initialize UART1 module
Delay_ms(100);
do {
ADGD = 1;
voltage_val = 0;
voltage_val = (ADHIGH << 8 ) + ADLOW;
IntToStr(voltage_val, txt);
UART_Write_Text("CH1:");
UART_Write_Text(txt);
UART1_Write(0x0D);
UART1_Write(0x0A);
while(ADGD == 1) {};
ADHIGH = ADRESH;
ADLOW = ADRESL;
} while(1);
Code: Select all
}