Le Registre de Configuration Et Le WatchDog
Le Registre de Configuration Et Le WatchDog
Le Registre de Configuration Et Le WatchDog
Pendant la phase d'implantation d'un programme dans la mémoire programme du PIC, on programme aussi
une EEPROM de configuration constituée de 5 mots de 14 bits chacun:
• 4 mots d’identification (ID) à partir de l’adresse 0x2000 pouvant contenir un repérage quelconque que
nous n'utiliserons pas,
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0
Registre de Configuration
La directive __CONFIG : permet de définir les 14 fusibles de configuration qui seront copié dans
l'EEPROM de configuration lors de l'implantation du programme dans le PIC.
13 12 11 10 9 8 7 6 5 4 3 2 1 0
CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0
__CONFIG B'11111111111001'
__CONFIG H'3FF9'
#include <p16F84.inc>
__CONFIG _CP_OFF & _XT_OSC & _PWRTE_OFF & _WDT_OFF
WATCHDOG
Le PIC peut être placé en mode faible consommation à l'aide de l'instruction SLEEP. Dans ce mode,
l'horloge système est arrêtée ce qui arrête l'exécution du programme.
Le Watch dog Timer WDT (Chien de garde) C’est un compteur 8 bits incrémenté en permanence (même
si le μC est en mode sleep) par une horloge RC intégrée indépendante de l'horloge système, de fréquence
14,22 KHz. Lorsqu’il déborde, (WDT Timeout), deux situations sont possibles :
L'horloge du WDT est ajustée pour que Le Time-Out arrive toutes les 18 ms. Il est cependant possible
d'augmenter cette durée en faisant passer le signal Time-Out dans un prédiviseur programmable (partagé
avec le timer TMR0). L’affectation se fait à l'aide du bit PSA du registre OPTION_REG
Registre OPTION_REG RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0
L'utilisation du WDT doit se faire avec précaution pour éviter la réinitialisation (inattendue) répétée du programme.
Pour éviter un WDT timeOut lors de l'exécution d'un programme, on a deux possibilités :
Inhiber le WDT d'une façon permanente en mettant à 0 le bit WDTE dans l'EEPROM de configuration
Remettre le WDT à 0 périodiquement dans le programme à l'aide de l'instruction CLRWDT pour éviter qu'il
ne déborde.