TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: PicMinor 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!
-
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();”.
-
¡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.
-
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.