PIC 16F84A

Reset

 

Il y a plusieurs types de Reset :

 

1- Reset à la mise sous tension (POR : Power-on Reset)

 

Un Reset interne a lieu à la mise sous tension, ou après une coupure de courant.

Le programme est initialisé (adresse H'0000' de la mémoire de programme).

 

2- Reset externe (en mode de fonctionnement normal)

 

Quand on appuie sur le bouton poussoir, la broche /MCLR passe au niveau bas, ce qui génère un Reset "externe" :

Le programme est réinitialisé (adresse H'0000' de la mémoire de programme).

 

3- Reset externe pendant le mode SLEEP

 

On se place dans le cas où le µC est placé en mode SLEEP (suite à l'instruction SLEEP).

Quand on appuie sur le bouton poussoir, la broche /MCLR passe au niveau bas, ce qui génère un Reset "externe" :

Le µC se réveille, le programme est réinitialisé (adresse H'0000' de la mémoire de programme).

 

4- Reset dû au Watchdog (en mode de fonctionnement normal)

 

Quand le timer Watchdog déborde, un Reset interne est réalisé :

Le programme est réinitialisé (adresse H'0000' de la mémoire de programme).

 

5- Réveil dû au Watchdog (en mode SLEEP)

 

En mode SLEEP, le µC se réveille si le timer watchdog déborde (si le watchdog est actif).

Mais il n'y a pas RESET : le programme reprend à l'instruction qui suit l'instruction SLEEP.

 

6 - Bits /TO et /PD du registre STATUS

 

Ces bits sont en lecture seule.

 

/TO
/PD
Condition
1
1
Reset à la mise sous tension (Power-on Reset POR)
1
1
Reset externe (en mode de fonctionnement normal)
0
1
Reset dû au Watchdog (en mode de fonctionnement normal)
0
0
Réveil dû au Watchdog (en mode SLEEP)
1
0

Reset externe pendant le mode SLEEP

Réveil dû à une interruption

 

En testant si /TO = 0, on peut savoir si le Reset est dû à un plantage (débordement de Watchdog), et orienter la suite de programme en conséquence.