TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: scooby2483 en 18 de Febrero de 2009, 09:21:18

Título: Duda entrada Analógica 16f877
Publicado por: scooby2483 en 18 de Febrero de 2009, 09:21:18
Hola!

Tengo un problema. LA cuestión es que intento configurar el 16f877 con entradas analógicas con las instrucciones "adc". EL problema me viene que al simular con proteus me sale el siguiente error y no me lee nada por el puerto que quiero.

ERROR PROTEUS: "ADC conversion started before 'wait' time has expired following previous conversion or channel change"

Os pongo mi programa en C a ver si estoy haciendo algo mal.
#include <16f877.h>
#include <stdio.h>
#use delay( clock = 1000000 )

main()
{
   float i=0;
   delay_ms(10);
   setup_adc_ports(AN0);
   delay_ms(10);
   SET_ADC_CHANNEL(0);

   delay_ms(10);

   i=read_adc();
   
}

He probado a ponerle más tiempo de espera con los 'delay', pero me sigue dando el mismo error, y ya no se a que puede ser. Lo mismo es que hago algo mal. Que nunca he trabajado con entradas analogicas y ando un poco perdido!

Saludos!!
Título: Re: Duda entrada Analógica 16f877
Publicado por: gera en 18 de Febrero de 2009, 11:46:48
Proba con esto a ver q tal, suerte!!

main()
{
   int8 i=0; //el adc devuelve un entero de 8 bits, despues lo podes castear
   setup_adc(ADC_CLOCK_DIV_8);
   setup_adc_ports(AN0);
   SET_ADC_CHANNEL(0);
   delay_us(20);

   i=read_adc();
   
}
Título: Re: Duda entrada Analógica 16f877
Publicado por: scooby2483 en 18 de Febrero de 2009, 13:17:49
Gracias gera, he probado ese codigo y lo mismo. El error no es al compilar ni nada, sino a la hora de simular en proteus...que me sale el mensaje ese maldito!!!


Pues mismo error...no se porque me da ese error...!!!!!Desespero!!!