Watchdog

 

Description:

C'est un oscillateur RC indépendant suivi d'un compteur 8 bits interne au pic

Il ne fonctionne que si le bit 2 (WDTE) de la mémoire de configuration 2007h est à 1

Ce bit est à 1 par défaut

Ce bit peut être mis à 0 au chargement par la directive __CONFIG WDT_OFF; il ne peut pas être modifié par le programme.

La durée nominale de comptage est de 18 ms, mais peut tomber à 7ms selon la température et la tension d'alimentation

Cette durée peut être allongée en utilisant le prescaler pour atteindre jusqu'à 2,3 secondes (0,9 selon la température et la tension d'alimentation)

Le Watchdog fonctionne pendant un SLEEP

En fonctionnement normal, le dépassement du compteur provoque un reset

Le bit 4 (NOT_TO) du registre STATUS (03h et 83h) passe à 0

En mode SLEEP il provoque un réveil et continue normalement

Le Watchdog peut être utilisé contre les plantages du programme: celui ci remet périodiquement le compteur à 0 par l'instruction CLRWDT; si le programme plante, il n'y a pas de remise à 0, il y a dépassement compteur et Reset

Les instructions CLWDT et SLEEP remettent à zéro le WATCHDOG et le prescaler s'il lui est attribué

Le Watchdog

Prescaler:

C'est un compteur 8 bits programmable

Il n'est ni lisible ni inscriptible

Seul son taux de division est programmable par les bits 0 1 et 2 (PS0) (PS1) et (PS2) du registre OPTION_REG (81h)

Le taux de division peut être modifié en cours de programme

Il est utilisé après le WATCHDOG lorsque le bit 3 PSA du registre OPTION_REG (81h) est à 1

La remise à zéro du WATCHDOG remet le prescaler à zéro

Taux de division du Postscaler avec le WATCHDOG (PSA=1)
PS2 PS1 PS0 Division
0 0 0 1
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128

 

Le prescaler fonctionne pour le module TIMER ou pour le WATCHDOG, mais pas pour les deux simultanément

 

Retour au sommaire

© 1999-2009 A. Ducros F5AD