En una de mis aplicaciones que utiliza PIC18F25K20, configuré los bits de Selección de escala de graduación del temporizador de vigilancia como sigue para el registro CONFIG2H al principio del código c bajo los bits de configuración.
pragma config WDTPS = 1024 // Watchdog Timer Postcale Select bits (1024 * 4 mS = 4 SEC TIMER)
Ahora, durante el tiempo de ejecución en el código, necesito reducir el tiempo de caducidad del temporizador del perro guardián de 4 segundos a 250 ms. Para hacer esto, necesito cambiar estos bits de escala posterior de WDTPS en el tiempo de ejecución (solo una vez).
¿Es posible? Si es así, por favor aconseje cómo hacer esto ...
Lo que estoy tratando de hacer es como sigue:
En un punto durante la ejecución del código, quiero poner el PIC en reposo. Después de 250 mS, el PIC debería activarse y reiniciar el software usando la instrucción RESET para reiniciar el PIC. No tengo 555 ni ningún otro medio para cronometrar esta duración. No sería posible una interrupción externa ya que es solo un retraso del software antes de RESTABLECER en modo de suspensión (para ahorrar energía de la batería). Estoy usando un cristal externo de 20MHz y no tengo ningún cristal de Temporizador 1 separado para cronometrar en modo de suspensión. Por lo tanto, solo puedo pensar en el temporizador Watch Dog para activar el PIC después de 250 ms para realizar RESET. ¿Algún otro pensamiento?