Autor Tema: El pic que congelado !!!!  (Leído 1650 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Medusa

  • PIC18
  • ****
  • Mensajes: 252
El pic que congelado !!!!
« en: 06 de Julio de 2009, 21:23:13 »
Hola,  :lol: estoy haciendo un programa en la que el pic monitorea continuamente el puerto del uart y cuando encuentra a su entrada el caracter correcto sale del lazo y sigue con su secuencia normal,  :( el problema es que hay momentos en que parece que el pic queda en un lazo infinito y no hay manera de que salga (tengo que resetear el pic) a pesar de que le estoy enviando a la entrada del usar del pic el caracter correcto.
Hay momentos en que funciona correctamente, creen que el Watchdog timer podria el que este causando esto, por que lo tengo desabilitado?, estoy usando el Pic18f452

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: El pic que congelado !!!!
« Respuesta #1 en: 07 de Julio de 2009, 01:18:17 »
Hola.

Porque no usas mejor interrupciones? De esa manera el micro estara atento sin ningun lio.
El papel lo aguanta todo

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: El pic que congelado !!!!
« Respuesta #2 en: 07 de Julio de 2009, 12:01:39 »
Si usas getc() va a leer el caracter aún si no ha llegado completo o bien y no va a coincidir con el char que estás esperando. Usa kbhit para esperarlo sin trabarlo...

Código: [Seleccionar]
while(!kbhit()); //Espera hasta que el char esté completo y bien
caracter=getc(); //lo lee

No recomiendo el uso de interrupción porque es un lazo de espera en el que no importa que el pic esté ocupado, con ese pedacito de código basta. Si el pic va a hacer más cosas mientras espera, entonces la interrupción es lo mejor como dice MLO.