El temporizador de vigilancia siempre tiene un período fijo que es nominalmente de 18 ms, pero puede variar de 7 a 33 ms. Hay un preescalador que puede asignarse al temporizador 0 o al perro guardián. Con la configuración máxima del preescalador, el período de viaje del perro guardián se multiplica por 128. Esto significa que el período máximo de perro guardián nativo es nominalmente 2.3 segundos, con un rango posible de 900 ms a 4.2 segundos.
Sin embargo, el período de vigilancia básico puede extenderse a cualquier longitud contando en el firmware. Incluso 18 ms es un tiempo "largo" para el micro. Despertarse cada 18 ms para disminuir un contador y ver si ha llegado a cero, luego volver a dormir toma muy poca corriente promedio. 10 segundos serían 556 viajes de vigilancia a 18 ms cada uno, por ejemplo. O bien, puede configurar el preescalador en 8, por ejemplo, para obtener períodos nominales de 144 ms. Luego contarías 69 de ellos para obtener un período de activación de aproximadamente 10 segundos.
Un problema con el uso del watchdog para sincronizar las activaciones es que es tan inexacto en estos PIC antiguos. Un truco que he usado varias veces es medir el intervalo de vigilancia dejando que el procesador se ejecute de vez en cuando, como cada 1024 activaciones, por ejemplo. Eso le permite medir el período de vigilancia frente al oscilador principal, mucho más preciso, y luego decidir cuántos períodos de vigilancia se deben contar por hora de activación deseada. En este ejemplo, la corriente promedio de dejar el procesador en cada 1024 intervalos de vigilancia sigue siendo inferior al 0,1% de dejarlo encendido todo el tiempo.