this is my code
#include <18F458.h>
#device ADC=10
#fuses HS,NOPROTECT,NOLVP,NOWDT
#use delay(clock=20000000)
void main()
{
int16 buffer[8],temp_res,pressure_res,level_res;
setup_adc( ADC_CLOCK_INTERNAL );
setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
lcd_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"welcome");
lcd_gotoxy(1,2);
while(1)
{
temp_res = 0;
set_adc_channel(0);
temp_res = read_adc()/2;
buffer[0] = temp_res;
lcd_gotoxy(1,1);
printf(lcd_putc,"Temp:%ld ",temp_res);
delay_ms(1000);
set_adc_channel(2);
pressure_res =read_adc();
buffer[0] = pressure_res;
lcd_gotoxy(1,2);
printf(lcd_putc,"Pressure: %ld",pressure_res);
delay_ms(1000);
set_adc_channel(1);
level_res =read_adc()/4;
level_res = level_res - 125;
buffer[0] = level_res;
lcd_gotoxy(10,1);
printf(lcd_putc,"Lvl:%ld ",level_res);
delay_ms(1000);
}
}
when i comment other two adc routine the temperature one works fine but while three at a time creates cross talk