TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: JJcorps en 10 de Octubre de 2006, 13:40:37
-
Estoy haciendo una aplicacion en la que la mayoria de los datos le lleguan por i2c al micro, pero de vez en cuando se cuelga asi que le he puesto el watchdog. Pos eso si el watchdog borra la memoria al provocar el reset.
Gracias
-
Haciendo un monton de pruebas, me respondo a mi mismo :P
NO borra la memoria sino que vuelve a empezar el contador de programa asi q las variables que tenia cargadas con valores que habia modificado se conservan (siempre que no las inicialice).
-
Hola JJcorps, el watchdog es un reset sobre el PIC por lo tanto afecta a varios de los reguistros del mismo, si te fijas en el data sheet del pic veras cuales son, ahora el problema que provoca el cuelgue de seguro lo tienes en el programa que as realizado, ya que este si estubiera bien no provocaría tal cuelgue.
Un saludo.
Atte. CARLOS.
-
NO borra la memoria sino que vuelve a empezar el contador de programa asi q las variables que tenia cargadas con valores que habia modificado se conservan (siempre que no las inicialice).
¿Con variables te referis a registros de propósito general?
Lamentablemente, en cualquier programa siempre se inicializa alguna variable de propósito general, excepto que la inicialización ocurra leyendo de una fuente ROM, ya sea la misma EEPROM del uC u otro tipo de memoria interna/externa no volátil.
Por lo tanto, si no usas guardas los datos de las "variables" en una memoria de tipo no volátil, el programa seguramente fallará, ya que como bien dijiste el Watchdog Timer realiza un reset, lo que provoca que el programa se reinicie y la unica forma sería no inicializar ninguna variable en el programa, lo que conlleva a problemas ya que tendrías datos aleatorios al iniciar el PIC por primera vez y a partir de alli, todo va cuestas abajo.
Saludos.