10
La durée d’écriture d’un octet est de l’ordre de 10 ms, la fin de chaque écriture réussie est
annoncé par le drapeau EEIF et la remise à zéro du bit RW du registre EECON1. Le drapeau EEIF peut déclencher l’interruption EEI si elle a été validée.
I.12.1 Procédure de lecture dans l’EEPROM de données • Placer l’adresse relative dans EEADR
• Mettre le bit RD de EECON1 à 1
• Lire le contenu du registre EEDATA
I.12.2 Procédure d’écriture dans l’EEPROM de données 1. L’écriture dans L’EEPROM doit être autorisée : bit WREN = 1 2. Placer l’adresse relative dans EEADR 3. Placer la donnée à écrire dans EEDATA 4. Placer 0x55 dans EECON2 5. Placer 0xAA dans EECON2 6. Démarrer l’écriture en positionnant le bit WR 7. Attendre la fin de l’écriture, (10 ms) (EEIF=1 ou WR=0) 8. recommencer au point 2 si on a d’autres données à écrire Le drapeau WRERR est positionné si une erreur d’écriture intervient EECON1 – – – EEIF WRERR WREN WR RD
EECON2 n’en est pas véritablement un Registre. Microchip l’utilise en tant que registre de commande. L’écriture de valeurs spécifiques dans EECON2 provoque l’exécution d’une commande spécifique dans l’électronique interne du PIC.
I.13 Les interruptions
Une interruption provoque l’arrêt du programme principal pour aller exécuter une procédure
d’interruption. A la fin de cette procédure, le microcontrôleur reprend le programme à l’endroit où il s’était arrêté. Le PIC16F84 possède 4 sources d’interruption. A chaque interruption sont associés deux bits: un bit de validation et un drapeau. Le premier permet d’autoriser ou non l’interruption, le second permet au programmeur de savoir de quelle interruption il s’agit. Tous ces bits sont dans le registre INTCON à part le drapeau EEIF de l’interruption EEI qui se trouve dans le registre EECON1.
I.13.1 Déroulement d’une interruption
Lorsque l’événement déclencheur d’une interruption intervient, alors son drapeau est
positionné à un (levé). Si l’interruption correspondante a été validée, elle est alors déclenchée : le programme arrête ce qu’il est en train de faire et va exécuter la procédure d’interruption qui se trouve à l’adresse 4 en exécutant les étapes suivantes : • l’adresse contenue dans le PC (Program Counter) est sauvegardée dans la pile, puis remplacée par la valeur 0004 (adresse de la routine d’interruption).
• Le bit GIE est placé « 0 » pour inhiber toutes les interruptions (afin qu’on ne soit pas dérangés
pendant l’exécution de la procédure d’interruption) .
• A la fin de la procédure d’interruption (instruction RETFIE) : o le bit GIE est replacé à l’état haut (autorisant ainsi un autre événement) o le contenu du PC est rechargé à partir de la pile ce qui permet au programme de reprendre
là où il s’est arrêté
Deux remarques importantes sont à faire :