Página 1 de 1

adc + ccs + 18F4550

MensagemEnviado: 23 Jan 2009 12:44
por kaoalex
Tudo bem pessoal!!!

Fiz uma rotina que deveria escrever tensões temperaturas no lcd.
Mas o bendito do chip lê uma das entradas errado.
No proteus funciona ok.

Qual deve ser a minha falha?

Obrigado a todos pela ajuda

Código: Selecionar todos

while(1)
  {
   set_adc_channel(12);
   adc_value = read_adc();
   printf("%LU ", adc_value);
   delay_ms(300);

   set_adc_channel(10);
   adc_value = read_adc();
   printf("%LU ", adc_value);
   delay_ms(300);

  }

MensagemEnviado: 23 Jan 2009 17:41
por buiz
Experimenta assim:

Código: Selecionar todos
while(1)
  {
   set_adc_channel(12);
   delay_ms(100);
   adc_value = read_adc();
   printf("%LU ", adc_value);
   delay_ms(300);

   set_adc_channel(10);
   delay_ms(100);
   adc_value = read_adc();
   printf("%LU ", adc_value);
   delay_ms(300);

  }


Um abraço,

Buiz

MensagemEnviado: 24 Jan 2009 16:39
por kaoalex
buiz,

Obrigado, mas não deu certo.

Código: Selecionar todos
while(1)
{

set_adc_channel(12); //Canal 0 selecionado como entrada analógica.
delay_ms(100);
adc = READ_ADC();
temp = ((float)adc*0.0048828125)*100;
printf(lcd_putc,"\nTemp = %.1f C",temp);
delay_ms(300);

set_adc_channel(10); //Canal 0 selecionado como entrada analógica.
delay_ms(100);
adc1 = READ_ADC();
volt = ((float)adc1*0.0048828125)*4;
printf(lcd_putc,"\fVolt = %.1f V",volt);
delay_ms(300);

}
}