Autor Tema: El Watchdog y la instrucción setup_wdt(WDT_OFF)  (Leído 1665 veces)

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

Desconectado PicMinor

  • PIC16
  • ***
  • Mensajes: 236
El Watchdog y la instrucción setup_wdt(WDT_OFF)
« en: 18 de Febrero de 2021, 05:19:48 »
¡Saludos al foro!

Tengo una duda sobre el WDT: Si yo lo he activado con los fuses, configurado, etc, lo utilizo (o no) y al cabo de un cierto tiempo ya no lo voy a necesitar...

¿Con la instrucción setup_wdt(WDT_OFF) lo desconecto?
¿Tengo que seguir inicializándolo?
¿Si no lo inicializo seguirá saltando?

¡Gracias por anticipado!

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re:El Watchdog y la instrucción setup_wdt(WDT_OFF)
« Respuesta #1 en: 18 de Febrero de 2021, 05:50:14 »
Si lo activas desde los fuses el wdt es activado al dar alimentación por lo que saltará si no usas a tiempo restart_wdt();.

  La función setup_wdt(wdt_off) efectivamente hace que el wdt ya no salte más. Lo desactivas por software.  Luego lo puedes volver a reactivar mediante la misma función dándole como argumento un valor de prescaler.

 Esto es especialmente útil cuando vas a entrar en una espera que no puedes atender el restart_wdt();.  Por ejemplo si vas a esperar para recibir un carácter con getc(); “aunque eso se soluciona con kbhit();”.     

Desconectado PicMinor

  • PIC16
  • ***
  • Mensajes: 236
Re:El Watchdog y la instrucción setup_wdt(WDT_OFF)
« Respuesta #2 en: 18 de Febrero de 2021, 07:25:22 »
¡Gracias por tu rápida respuesta!

Era más o menos lo que sospechaba. Lo estaba comprobando pero me anima saber que voy por el buen camino.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:El Watchdog y la instrucción setup_wdt(WDT_OFF)
« Respuesta #3 en: 18 de Febrero de 2021, 13:38:43 »
Deberias revisar bien bien el micro..

Las opciones de de WDT_ON y WDT_OFF no están para todos los PICs.

Muchos PICs únicamente se habilitan mediante los FUSES, y no le es permitido modificar esos bits en runtime, asi que no tendría ningún efecto usarlo (es decir no se deshabilita). Por eso mismo deberías referirte al datasheet y ver si existe alguna forma de hacerlo, sino pensaria en que no se puede.

Si lo deseas que sea "temporal" la proteccion entonces usa un timer con su respectiva interrupcion.


 

anything