Autor Tema: Duda sobre el Watchdog  (Leído 2234 veces)

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

Desconectado eccdreded

  • PIC10
  • *
  • Mensajes: 29
Duda sobre el Watchdog
« en: 18 de Abril de 2006, 07:16:49 »
Hola amigos tengo un problema con un programa bastante largo que consta de un programa principal y dos interrupciones de los Timer 1 y 0.
Este programa(compilado en CCS) me funciona bien hasta que pasan unos segundos y se me resetea el solito.Supongo que necesito el Watchdog.

La interrupcion del timer 1 me controla la lectura de lectura de 3 sensores diferentes, y ademas me hace la lectura de un real time clock externo.

La interrupcion del timer 0 lo que hace es entrar en un menu de ajustes de los parametros que se desean controlar con los sensores.

El programa principal simplemente inicializa el LCD keyboard el RTC externo...

Bueno la pregunta es qué tiempo de reset del Watchdog elijo, y donde me aconsejan poner el comando restart_wdt().

Una vez mas gracias a todos por su interes!!!! :wink:
« Última modificación: 18 de Abril de 2006, 08:44:20 por eccdreded »

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Duda sobre el Watchdog
« Respuesta #1 en: 18 de Abril de 2006, 08:15:59 »
Hola amigos tengo un problema con un programa bastante largo que consta de un programa principal y dos interrupciones de los Timer 1 y 0.
Este programa(compilado en CCS) me funciona bien hasta que pasan unos segundos y se me resetea el solito.Supongo que necesito el Watchdog.

La interrupcion del timer 1 me controla la lectura de lectura de 3 sensores diferentes, y ademas me hace la lectura de un real time clock externo.

La interrupcion del timer 0 lo que hace es entrar en un menu de ajustes de los parametros que se desean controlar con los sensores.

El programa principal simplemente inicializa el LCD keyboard el RTC externo...

Bueno la pregunta es qué tiempo de reset del Watchdog elijo, y donde me aconsejan poner el comando reset_wdt().

Una vez mas gracias a todos por su interes!!!! :wink:

eccdreded yo que tu primero me fijaría porqué se resetea el pic o al menos porque crees que se resetea.  En casi todos los casos suele ser un problema de código o de hardware y no del pic.  En el hardware, si una entrada A/D por ejemplo baja de 0V he visto que los pics se resetean (lo comprobé con un 16F873 y un 16F877 pero no hacerlo un caso general simplemente es mi experiencia).

El watchdog no va a solucionar que el micro se resetee, por lo contrario hará que se resetee!

El watchdog es util cuando tu firmware se cuelga en algún punto ya sea porque no esta bien depurado el software o porque una señal que esperas nunca llegue y el software se cuelgue ahi (esto es algo muy genérico cada software/hardware tiene sus cosas).  El punto es que si por ej. el pic se cuelga porque le entra ruido por sus pines, el watchdog podrá salvar la situación reseteandolo (me ha pasado en ambientes ruidosos) es por eso que yo que tu revería la necesidad de usar el watchdog.

De todas formas, si quieres usarlo, el período del mismo debiera ser mayor al mayor bucle de código de tu programa entre clrwdt() y clrwdt(). Es decir que si dentro de tu código tienes un clrwdt() cada 10mseg, pues los 18mseg por defecto te funcionarán bien.  Si tu bucle es de 100mseg, entonces debes incrementar este número usando el prescaler (asignando el prescaler al WDT en vez de al TMR0 , ojo si usas el prescaler para el TMR0).

Un abrazo
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado eccdreded

  • PIC10
  • *
  • Mensajes: 29
Re: Duda sobre el Watchdog
« Respuesta #2 en: 18 de Abril de 2006, 08:52:15 »
Muchas gracias Mauricio!!

Revise el programa y si que habia una pequeña errata que se colo en el sistema jeje

Un saludito
« Última modificación: 18 de Abril de 2006, 16:27:39 por eccdreded »

Desconectado electronico2007

  • PIC10
  • *
  • Mensajes: 1
Re: Duda sobre el Watchdog
« Respuesta #3 en: 05 de Mayo de 2006, 21:13:32 »
hola a todos tengo problemas con un pic que tiene el wdt activo pero se que da colgado despues de 12 horas de trabajo, quien podra ayudarme si sabe alguna causa de este problema estoy usando interrupciones y el watch dog timer pero aun se queda colgado

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Duda sobre el Watchdog
« Respuesta #4 en: 05 de Mayo de 2006, 21:29:56 »
Si el programa funciona correctamente durante 12 horas, mas bien parece un problema de calentamiento o de hardware, mira la temperatura de la placa y si no esta muy caliente prueba a cambiar el pic.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús