TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: micro_pepe en 22 de Febrero de 2009, 19:48:46
-
En los fusibles se puede desactivar o activar el WDT, pero ¿Como se hace en las lineas de codigo?
Necesito desactivarlo para que al entrar en modo Sleep, este no se 'despierte' al desbordarse el WDT.
Un saludo.
-
con CCS se puede utilizar la funcion
setup_wdt (mode)
mode: WDT_ON, WDT_OFF
Note: For PCH parts and PCM parts with software controlled WDT, setup_wdt( ) would enable/disable watchdog timer only if NOWDT fuse is set. If WDT fuse is set, watchdog timer is always enabled.
Note: WDT_OFF should not be used with any other options.
Warning: SETUP_WDT() should be called before Timer0 is set up.
Saludos
-
micro_pepe, No todos los PIC's tiene control del WDT por SW, consulta la DS del PIC que vas a utilizar. Por ejemplo, el 16F87xA no traen control de WDT por HW, mientras que los 18Fx55x si lo tienen.
Lo que puedes hacer si tu PIC no soporta el control de WDT por SW es dejar el WDT activado, configurar su prescalador para que el tiempo de WDT sea máximo, colocar el PIC a dormir. Cuando el PIC se despierte lo primero que haces es chequear los bits TO y PD para saber si el micro se ha despertado por el WDT o por otra causa. De ser el primer caso lo vuelves a dormir. NO es el metodo más efectivo porque el micro se despierta cada tanto pero funciona.
Saludos.