adc + ccs + 18F4550

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

adc + ccs + 18F4550

Mensagempor kaoalex » 23 Jan 2009 12:44

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);

  }
Avatar do usuário
kaoalex
Byte
 
Mensagens: 237
Registrado em: 12 Out 2006 01:52

Mensagempor buiz » 23 Jan 2009 17:41

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
Avatar do usuário
buiz
Byte
 
Mensagens: 165
Registrado em: 20 Out 2006 14:59
Localização: Cachoeira do Sul - RS

Mensagempor kaoalex » 24 Jan 2009 16:39

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);

}
}
Avatar do usuário
kaoalex
Byte
 
Mensagens: 237
Registrado em: 12 Out 2006 01:52


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x