04/05/2024
SYSTÈMES
A MICROCONTROLEURS
4A GEE
Pr. YADEN Mohammed Faysal
Chapitre V
INTERFACE
COMPTEUR/TEMPORISATEUR
Définition
• Le Timer permet de réaliser les fonctions
suivantes :
• Temporisation,
• Génération d’un signal périodique modulé ou non en
largeur d’impulsion,
• Génération d’une impulsion calibrée,
• Comptage d'événements.
• Plusieurs registres associés au Timer permettent
de configurer les différents modes décrits
précédemment.
• Le cœur de ce dernier est un registre de 16 bits,
TCNT (Timer Counter), qui s’incrémente à chaque
pulsation de l’horloge sans arrêt de $0000 jusqu’à
$FFFF.
1
04/05/2024
Schéma fonctionnelle
Les registres du Timer
Le registre TMSK2, Timer Interrupt Mask 2 :
Les registres du Timer
Le registre TCNT, Timer Counter :
• Au débordement de TCNT (passage de 65535 à 0),
le drapeau TOF (bit de TFLG2) passe à 1.
• Le drapeau TOF doit être réinitialisé dans ce sous-
programme pour qu’une nouvelle IT soit possible.
• Ce registre TCNT est utilisé pour les fonctions de
capture et de comparaison.
2
04/05/2024
Les registres du Timer
Le registre TFLG2, Timer Interrupt Flag
2:
• Le bit TOF se positionne à 1 quand il y a
débordement du compteur. il reste dans cet état
tant qu'il n'est pas remis à zéro par l'utilisateur.
• La mise à zéro de ce bit se fait par l’écriture d’un
1 dans TOF.
Temps de cycle
Le temps de cycle étant le temps nécessaire pour que le
TCNT passe de (0000)Hex à (FFFF)Hex soit 216 = 65 536
périodes d’horloge.
Temps de cycle = TH × 216 × Prédiviseur
Cas de temporisation
T=Tc T<Tc T>Tc
Prédiviseur
Prédiviseur Prédiviseur
N fois
Valeur dans le
Teste du bit registre TOCx
TOF (TFLG2) TOCx = valeur
Test du bit bit OCxF ?
OCxF (TFLG1)
3
04/05/2024
Temporisation < Temps de cycle
Pour réaliser une temporisation de 100ms on n’aura
pas besoin d’attendre un cycle en entier :
Calcul de la valeur à charger dans TOCx:
Valeur(TOCx) = (Tempo × 216 )∕ Temps de cycle
• Tempo = 100ms
• VTOCx = (100.10-3 × 65536)/ 524,288.10-3 =12500
10
Les registres TOCx
TOC1 – TOC4 , Timer Output Capture :
Ce sont des registres E/S, codés sur 16 bits.
La fonction de comparaison est établie en
écrivant dans le registre concerné la valeur
recherchée.
11
Les registres TOCx
Lorsque le compteur interne TCNT atteint
une valeur identique, la broche OCxF du
registre TFLG1 correspondante est mise à 1.
TFLG1, Timer Interrupt Flag 1:
12
4
04/05/2024
Temporisation > Temps de cycle
• La temporisation nécessite un ou plusieurs cycles de
passage du TCNT de (0000)Hex à (FFFF)Hex.
• Exemple :
Une temporisation de 1,25 s;
Un temps de cycle = 524,288 ms
1ère étape : Calculer le temps de cycle
Temps de cycle = 216 × 1/(fréquence du quartz)/4 × 16
= 524,288 ms.
13
Temporisation > Temps de cycle
2ème étape : Calculer le nombre de fois que le TCNT
doit passer de (0000)h à (FFFF)h.
Ratio = Temporisation ∕ Temps de cycle
• Ratio = 1,25 /524,288.10-3 = 2,38
• Donc le TCNT doit passer de (0000)Hex à (FFFF)Hex
2 fois.
14
Temporisation > Temps de cycle
3ème étape : Programmer la partie décimale 0,38
• Déterminer la valeur à charger au TOCx équivalente à
0,38;
• Puis le test du bit OCxF pour cette partie décimale.
• Reset de OCxF pour une autre utilisation.
15
5
04/05/2024
Chapitre VI
LES INTERRUPTIONS
16
Introduction
Les modes de communication :
Microcontrôleur Microcontrôleur
Périphériques Périphériques
Interruption Scrutation
17
Introduction
Une interruption consiste à interrompre un programme
en cours d’exécution pour exécuter un sous-programme
d’interruption (SPI) traitant l’interruption puis à
reprendre l’exécution du programme principal.
Avantages :
• Réactivité en temps réel
• Multitâche
• Économie de ressources
• Gestion d'erreurs
18
6
04/05/2024
Principe
• Lors d’une demande
d’interruption, le µC quitte le
programme en cours pour se
brancher au VECTEUR
D’INTERRUPTION.
• Le SPI se termine par une
instruction RTI qui fait retourner
le µC au programme principal.
• Avant de faire le saut au SPI, le
µC sauvegarde automatiquement
les données des registres internes
dans la pile et il les restaure avant
le retour au programme principal.
19
Affectation des vecteurs
d'interruption
20
Sources d’interruptions
• Externes : entrées IRQ, XIRQ et RESET
(non masquables sauf IRQ).
• Logicielles : instruction SWI et “code
opération illégal” (non masquables)
• Internes : (unités périphériques intégrées):
débordement Timer, entrées capture, sorties
comparaison, accumulateur d’impulsions,
lignes séries (SCI et SPI). Toutes ces IT sont
masquables.
21
7
04/05/2024
Instructions de gestion des IT
• RTI : retour de sous-programme d’interruption
• SWI : interruption logiciel
• WAI : attente d’interruption
• CLI : autorise les interruptions masquables
(I←0)
• STOP : mode STOP
22
Mise en place d’une IT
1. Charger le programme d’IT dans le vecteur
d’IT correspondant.
2. Terminer le SPI par l’instruction RTI.
3. Réserver un espace mémoire pour la pile.
4. Autoriser les interruptions de manière
générale.
5. Autoriser l’interruption souhaitée (bit xxxI
d’un registre particulier à mettre à 1).
6. Attendre l’arrivée de l’interruption.
23
Le mode de communication
HANDSHAKING
• Le sous-système de handshaking
se compose de PORTB, du
PORTC et de deux lignes de
PORTB
contrôle, strobe A (STRA) et
strobe B (STRB).
PORTC
• Il existe deux méthodes de
Handshaking supportées par le 68HC11
68HC11, simple et complète. STRB
• Les différents modes et fonctions
sont sélectionnés et contrôlés par STRA
les bits du registre PIOC
(Parallel Input/Output Control).
24
8
04/05/2024
Les modes de fonctionnement
Mode simple Mode complet
25
Les registres du mode HANDSHAKING
Le registre PIOC (Parallel Input/Output Control)
26
Les registres du mode HANDSHAKING
Le registre PORTCL (Port C Latched)
C’est un registre associé au PORTC qui fait apparaitre
les niveaux logiques appropriés sur les connexions du
PORTC.
La lecture du registre PORTCL n’est possible que
lorsque la ligne STRA est activée.
27