SlideShare una empresa de Scribd logo
1 de 15
Programmation des interruptions et
des temporisations
Interruptions et leurs
traitements. Configuration des
registres de contrôle. Exemples
d’applications.
Timers pour la gestion du
temps. Configuration des
registres de contrôle. Exemples
d’applications.
Interruptions et leurs traitements
Mécanisme général d’une interruption.
Une routine d’interruption peut être considérée comme un
sous programme déclenché par l’apparition d’un évènement
spécifique.
Le programme se déroule normalement.
L’évènement survient
Le programme achève l’instruction en cours de traitement
Le programme traite l’interruption.
L’évènement qui déclenche l’interruption doit remplir deux
conditions :
- l’évènement doit être dans la liste des évènements susceptibles de
provoquer une interruption
- l’utilisateur doit avoir autorisé l’interruption, c'est-à-dire avoir signalé
que l’évènement en question devait générer une interruption.
Mécanisme d’interruption sur un PIC
Une interruption est un événement imprévisible qui provoque
l’arrêt d’un programme en cours d’exécution pour aller exécuter un
autre programme appelé programme (ou routine) d’interruption. A
la fin du programme d’interruption, le microcontrôleur reprend le
programme principal à l’endroit où il s’est arrêté.
Toute interruption provoque une sauvegarde de l’adresse PC
(c'est-à-dire l’adresse en cours du programme au moment ou est
intervenu l’interruption) dans une pile interne à 8 niveau et
l’exécution du programme est routé à l’adresse 0x04 de la mémoire
FLASH. Cette adresse est réservée pour les interruptions.
Enfin, une interruption ne peut pas être interrompu par une
autre interruption sauf si le programmateur remet le flag GIE à un
trop tôt. Les interruptions sont remises automatiquement en
service après le retour dans la boucle principale .
Types d’interruptions
• On distingue deux types d’interruptions : Les interruptions
externes, qui sont déclenchées lorsqu’un événement extérieur se
produit tels que le changement d’état d’une entrée destinée à
l’interruption. Les interruptions internes, qui sont déclenchées par
le déroulement du programme tel que le résultat d’un calcul ou le
débordement d’un Timer.
• Toute interruption est gérée à l’aide de 3 bits : Un bit indicateur ou
drapeau (Flag bit). Ce bit est mis à 1 lorsque l’interruption
correspondante survient. Un bit d’activation (Enable bit). Ce bit
permet d’activer ou de désactiver l’interruption correspondante.
Un bit d’activation globale (Global Enable bit). Ce bit permet
d’activer ou de désactiver toutes les interruptions. Ces bits sont
regroupés suivant le microcontrôleur cible dans des registres
appelés registres de configuration des interruptions tels que :
INTCON, PIE1, PIE2, PIR1 et PIR2. Le nombre de sources
d’interruptions dépend du microcontrôleur utilisé.
• En MikroC, le sous-programme d’interruption
est déclaré en tant que fonction avec le nom
spécial « Interrupt ». Cette fonction s’exécute
automatiquement en réponse aux
évènements déclencheurs des interruptions
activées par l’utilisateur.
REGISTRE DE CONFIGURATION DES
INTERRUPTIONS
• Le registre INTCON (INTerrupt CONtroller) est le registre principal de
contrôle et de gestion des interruptions. Suivant le type du
microcontrôleur donc du nombre de sources d’interruptions, le registre
INTCON est parfois accompagné par d’autres registres tels que (PIE,
PIR1, etc.) pour gérer la totalité des sources d’interruptions disponibles.
Le registre INTCON est parfois différent d’un PIC à un autre. Il est
impératif de revenir au document constructeur pour chaque type de
microcontrôleur (Data sheet).
EXEPLE D’APPLICATION
• 1. Exemple 1 Soient 4 LEDs connectés sur les pins RA0, RA1, RA2 et RA3 du
Port A. Utiliser l’interruption sur (RB4-RB7) pour faire basculer l’état des
LEDs (RB4 commande RA0, RB5 commande RA1 et ainsi de suite).
• 2. Exemple 2 Utiliser l'interruption pour changer la vitesse de
clignotement de la diode Led connecté sur la pin RA0 selon le schéma de
la figure ci-dessous.
EXEPLE D’APPLICATION(2)
Temporisations et comptages
Les différents modes de fonctionnement
La 16F84 ne comporte qu’un seul timer sur 8 bits, contrairement à d’autres
PICs de la famille (comme la 16F877). Si on examine attentivement le
fonctionnement du timer0, nous verrons qu’il s’agit en fait d’un compteur.
Le timer0 est en fait un compteur. Nous avons deux possibilités:
En premier lieu, nous pouvons compter les impulsions reçues sur la pin RA4/TOKI. Nous
dirons dans ce cas que nous sommes en mode compteur
Nous pouvons aussi décider de compter les cycles d’horloge du PIC lui-même. Dans ce
cas, comme l’horloge est fixe, nous compterons donc en réalité du temps. Donc,
nous serons en mode « timer ».
La sélection d’un ou l’autre de ces deux modes de fonctionnement s’effectue par le
bit 5 du registre OPTION : T0CS pour Tmr0 Clock Source select bit.
T0CS = 1 : Fonctionnement en mode compteur
T0CS = 0 : Fonctionnement en mode timer
Dans le cas où vous décidez de travailler en mode compteur, vous devez aussi préciser
de quelle transition de niveau le comptage est effectué. Ceci est précisé grâce au bit
4 du registre OPTION : T0SE pour Timer0 Source Edge select bit.
T0SE = 0 : comptage si l’entrée RA4/TOKI passe de 0 à 1
T0SE = 1 : comptage si l’entrée RA4/TOKI passe de 1 à 0
Le registre tmr0
Ce registre, qui se localise à l’adresse 0x01 en banque0, contient tout simplement la
valeur actuelle du timer0. Vous pouvez écrire ou lire tmr0. Si par exemple vous avez
configuré tmr0 en compteur, la lecture du registre tmr0 vous donnera le nombre
d’événements survenus sur la pin RA4/TOKI.
Les méthodes d’utilisation du timer0
1Le mode de lecture simple
La première méthode qui vient à l’esprit est la suivante : Nous lisons le registre tmr0
pour voir ce qu’il contient. La valeur lue est le reflet du nombre d’événements
survenus, en prenant garde au fait que le tmr0 ne peut compter que jusque 255. En
cas de dépassement, le tmr0 recommence à 0.
2Le mode de scrutation du flag
Nous devons savoir à ce niveau, que tout débordement du timer0 (passage de 0xFF
à 0x00) entraîne le positionnement du flag T0IF du registre INTCON. Vous pouvez
donc utiliser ce flag pour déterminer si vous avez eu débordement du timer0, ou, en
d’autres termes, si le temps programmé est écoulé. Cette méthode à l’inconvénient
de vous faire perdre du temps inutilement
3Le mode d’interruption
C’est évidemment le mode principal d’utilisation du timer0. En effet, lorsque T0IE
est positionné dans le registre INTCON, chaque fois que le flag T0IF passe à 1, une
interruption est généree
Le prédiviseur
Supposons que nous travaillons avec un quartz de 4MHz. Nous avons donc dans
ce cas (4000000/4) = 1.000.000 de cycles par seconde. Chaque cycle
d’horloge dure donc 1/1000000ème de seconde, soit 1µs.
Si nous décidons d’utiliser le timer0 dans sa fonction timer et en mode
interruptions. Nous aurons donc une interruption toutes les 256µs, soit à
peut près toutes les quarts de millième de seconde.
Si nous désirons réaliser une LED clignotante à une fréquence de +- 1Hz, nous
aurons besoin d’une temporisation de 500ms, soit 2000 fois plus. Ce n’est
donc pas pratique.
Nous disposons pour améliorer ceci d’un PREDIVISEUR .
Qu’est-ce donc ? Et bien, tout simplement un diviseur d’événements situé
AVANT l’entrée de comptage du timer0. Nous pourrons donc décider d’avoir
incrémentation de tmr0 tous les 2 événements par exemple, ou encore tous
les 64 événements.
Le tableau suivant représente les valeurs des bits PS0 à PS2 du registre OPTION
qui déterminent la valeur du prédiviseur.
Ces valeurs varient, pour le timer0, entre 2 et 256. Le bit PSA, quand à lui,
détermine si le prédiviseur est affecté au timer0 ou au watchdog. Voici le
tableau exprimant toutes les possibilités de ces bits :
PSA à PS0 sont les bits de configuration du prédiviseur
/tmr0 indique la valeur du prédiviseur résultante sur le timer0
/WD indique la valeur du prédiviseur résultante sur le Watchdog
temps tmr0 indique le temps max entre 2 interruptions tmr0 avec quartz de 4MHz
Temps watchdog indique le temps typique disponible entre 2 reset watchdog (indépendant du quartz utilisé). La valeur
entre parenthèses indique le temps minimal, qui est celui à utiliser pour faire face à toutes les circonstances.
Exemple 1
unsigned temps : 16;
char newtmro;
void main ()
{
PORTB=0;
TRISB= 0x00;
OPTION = 0xC5;
temps=0;
newtmro = TMRO+1;
for (;
{
clrwdt();
if (TMRO == newtmro)
{
++temps;
++newtmro;
}
if (temps == 15625)
{
RB0_bit =! RB0_bit;
temps=0;
}
}
}Exemple
unsigned cnt;
void interrupt() {
cnt++;
// Increment value of cnt on every interrupt
TMR0L = 96;
INTCON = 0x20; // Set T0IE, clear T0IF
}
void main() {
ADCON1 = 0x0F; // Set AN pins to Digital I/O
T0CON = 0xC4; // Set TMR0 in 8bit mode, assign prescaler to TMR0
TRISB = 0; // PORTB is output
PORTB = 0xFF; // Initialize PORTB
TMR0L = 96; // Timer0 initial value
INTCON = 0xA0; // Enable TMRO
interrupt cnt = 0; // Initialize cnt
do {
if (cnt == 400) {
PORTB = ~PORTB; // Toggle PORTB LEDs
cnt = 0; // Reset cnt
} }
while(1); }
Exemple 2
LA PROGRAMMATION DES PICS
PAR BIGONOFF
PREMIERE PARTIE – PIC16F84 – Révision 5
Leçon N°10 LES INTERRUPTIONS EN MIKROC
Par Mr Nizar TOUJENI

Más contenido relacionado

Similar a pres_chapter5 (5).pptx

Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84guest1e7b02
 
Carel mastercella manuel d'utilisation
Carel mastercella manuel d'utilisationCarel mastercella manuel d'utilisation
Carel mastercella manuel d'utilisatione-genieclimatique
 
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdfNotes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdfIMADABOUDRAR1
 
Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Abdo Brahmi
 
Rapport tp3 diabang ,pape moussa fall et maguette mbacké
Rapport tp3 diabang ,pape moussa fall et maguette mbackéRapport tp3 diabang ,pape moussa fall et maguette mbacké
Rapport tp3 diabang ,pape moussa fall et maguette mbackéCheikh Tidiane DIABANG
 
Mesure grandeurs physiques_dans_automobile
Mesure grandeurs physiques_dans_automobileMesure grandeurs physiques_dans_automobile
Mesure grandeurs physiques_dans_automobileChalvesche
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptionsSana Aroussi
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreelyoussef essakhi
 
Automatisme PLC
 Automatisme PLC Automatisme PLC
Automatisme PLCTECOS
 
Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Mohammed Lamghari
 
Rapport voiture radiocommandée
Rapport voiture radiocommandéeRapport voiture radiocommandée
Rapport voiture radiocommandéeHASSOU mohamed
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industrielAdnane Ahmidani
 
Initiation à l’analyse réseau avec Wireshark.pdf
Initiation à l’analyse réseau avec Wireshark.pdfInitiation à l’analyse réseau avec Wireshark.pdf
Initiation à l’analyse réseau avec Wireshark.pdfDrm/Bss Gueda
 
Chapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxChapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxFazaTabbana1
 
Atelier d'Optimisation de Contrôleurs en simulation Dynamique
Atelier d'Optimisation de Contrôleurs en simulation DynamiqueAtelier d'Optimisation de Contrôleurs en simulation Dynamique
Atelier d'Optimisation de Contrôleurs en simulation DynamiqueSergio Joao
 
SEND SMS WITHOUT USING AT COMMANDS
SEND SMS WITHOUT USING AT COMMANDSSEND SMS WITHOUT USING AT COMMANDS
SEND SMS WITHOUT USING AT COMMANDSKhalil Chortani
 

Similar a pres_chapter5 (5).pptx (20)

Microcontroleur Pic16 F84
Microcontroleur Pic16 F84Microcontroleur Pic16 F84
Microcontroleur Pic16 F84
 
Carel mastercella manuel d'utilisation
Carel mastercella manuel d'utilisationCarel mastercella manuel d'utilisation
Carel mastercella manuel d'utilisation
 
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdfNotes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
Notes de cours sur le microcontrôleur PIC16F84 BADR DIDOUH FSTF.pdf
 
Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655Etude-Du-Microcontrleur-Pic16f84-160919133655
Etude-Du-Microcontrleur-Pic16f84-160919133655
 
Rapport tp3 diabang ,pape moussa fall et maguette mbacké
Rapport tp3 diabang ,pape moussa fall et maguette mbackéRapport tp3 diabang ,pape moussa fall et maguette mbacké
Rapport tp3 diabang ,pape moussa fall et maguette mbacké
 
Mesure grandeurs physiques_dans_automobile
Mesure grandeurs physiques_dans_automobileMesure grandeurs physiques_dans_automobile
Mesure grandeurs physiques_dans_automobile
 
Chapitre iii interruptions
Chapitre iii interruptionsChapitre iii interruptions
Chapitre iii interruptions
 
Support systemes multitaches-tempsreel
Support systemes multitaches-tempsreelSupport systemes multitaches-tempsreel
Support systemes multitaches-tempsreel
 
Automatisme PLC
 Automatisme PLC Automatisme PLC
Automatisme PLC
 
Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2Microcontrôleur PIC Microchip part1/2
Microcontrôleur PIC Microchip part1/2
 
Rapport voiture radiocommandée
Rapport voiture radiocommandéeRapport voiture radiocommandée
Rapport voiture radiocommandée
 
Cours mooremealy [autosaved]
Cours mooremealy [autosaved]Cours mooremealy [autosaved]
Cours mooremealy [autosaved]
 
Api
ApiApi
Api
 
introduction automatisme industriel
introduction automatisme industrielintroduction automatisme industriel
introduction automatisme industriel
 
wireshark.pdf
wireshark.pdfwireshark.pdf
wireshark.pdf
 
Initiation à l’analyse réseau avec Wireshark.pdf
Initiation à l’analyse réseau avec Wireshark.pdfInitiation à l’analyse réseau avec Wireshark.pdf
Initiation à l’analyse réseau avec Wireshark.pdf
 
Chapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptxChapitre 05 architecture microprocesseur (2).pptx
Chapitre 05 architecture microprocesseur (2).pptx
 
Atelier d'Optimisation de Contrôleurs en simulation Dynamique
Atelier d'Optimisation de Contrôleurs en simulation DynamiqueAtelier d'Optimisation de Contrôleurs en simulation Dynamique
Atelier d'Optimisation de Contrôleurs en simulation Dynamique
 
µP
µPµP
µP
 
SEND SMS WITHOUT USING AT COMMANDS
SEND SMS WITHOUT USING AT COMMANDSSEND SMS WITHOUT USING AT COMMANDS
SEND SMS WITHOUT USING AT COMMANDS
 

Más de Abdo Brahmi

Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjbCours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjbAbdo Brahmi
 
Cours_P627_09_03_2023.pptghfgggghgghhghh
Cours_P627_09_03_2023.pptghfgggghgghhghhCours_P627_09_03_2023.pptghfgggghgghhghh
Cours_P627_09_03_2023.pptghfgggghgghhghhAbdo Brahmi
 
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhhcapteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhhAbdo Brahmi
 
Cours_P627_11_03_2023.ppthghggggghhhjhhh
Cours_P627_11_03_2023.ppthghggggghhhjhhhCours_P627_11_03_2023.ppthghggggghhhjhhh
Cours_P627_11_03_2023.ppthghggggghhhjhhhAbdo Brahmi
 
Cours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgjCours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgjAbdo Brahmi
 
Cours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptCours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptAbdo Brahmi
 
M312_Electricité_BCG.ppt
M312_Electricité_BCG.pptM312_Electricité_BCG.ppt
M312_Electricité_BCG.pptAbdo Brahmi
 
Cours_P627_11_03_2023.ppt
Cours_P627_11_03_2023.pptCours_P627_11_03_2023.ppt
Cours_P627_11_03_2023.pptAbdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxAbdo Brahmi
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).pptAbdo Brahmi
 
capteurs II.pptx
capteurs II.pptxcapteurs II.pptx
capteurs II.pptxAbdo Brahmi
 
diaporama_1_professeurs_94e.ppt
diaporama_1_professeurs_94e.pptdiaporama_1_professeurs_94e.ppt
diaporama_1_professeurs_94e.pptAbdo Brahmi
 
card_sorting.ppt
card_sorting.pptcard_sorting.ppt
card_sorting.pptAbdo Brahmi
 
Initiation_a_l_informatique.pptx
Initiation_a_l_informatique.pptxInitiation_a_l_informatique.pptx
Initiation_a_l_informatique.pptxAbdo Brahmi
 
Les microcontrôleurs PIC.pptx
Les microcontrôleurs PIC.pptxLes microcontrôleurs PIC.pptx
Les microcontrôleurs PIC.pptxAbdo Brahmi
 
Cours_Physique_des_Composants_dElectroni.pptx
Cours_Physique_des_Composants_dElectroni.pptxCours_Physique_des_Composants_dElectroni.pptx
Cours_Physique_des_Composants_dElectroni.pptxAbdo Brahmi
 
le-courant-electrique-continu-cours-ppt-3.pdf
le-courant-electrique-continu-cours-ppt-3.pdfle-courant-electrique-continu-cours-ppt-3.pdf
le-courant-electrique-continu-cours-ppt-3.pdfAbdo Brahmi
 
Cours - Lois de l'électricité - Light.pptx
Cours - Lois de l'électricité - Light.pptxCours - Lois de l'électricité - Light.pptx
Cours - Lois de l'électricité - Light.pptxAbdo Brahmi
 
manual-pe-2017_compress.pdf
manual-pe-2017_compress.pdfmanual-pe-2017_compress.pdf
manual-pe-2017_compress.pdfAbdo Brahmi
 

Más de Abdo Brahmi (20)

Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjbCours_P627_19_03_2024.pptfjghgfjjfjhggjb
Cours_P627_19_03_2024.pptfjghgfjjfjhggjb
 
Cours_P627_09_03_2023.pptghfgggghgghhghh
Cours_P627_09_03_2023.pptghfgggghgghhghhCours_P627_09_03_2023.pptghfgggghgghhghh
Cours_P627_09_03_2023.pptghfgggghgghhghh
 
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhhcapteurs I.pptxfgggghghghghhghhhhhhhhhhh
capteurs I.pptxfgggghghghghhghhhhhhhhhhh
 
Cours_P627_11_03_2023.ppthghggggghhhjhhh
Cours_P627_11_03_2023.ppthghggggghhhjhhhCours_P627_11_03_2023.ppthghggggghhhjhhh
Cours_P627_11_03_2023.ppthghggggghhhjhhh
 
Cours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgjCours_P627_09_03_2023.pptafrsecxghgghjgj
Cours_P627_09_03_2023.pptafrsecxghgghjgj
 
Cours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.pptCours2 Master Embarqué 2022-2023.ppt
Cours2 Master Embarqué 2022-2023.ppt
 
M312_Electricité_BCG.ppt
M312_Electricité_BCG.pptM312_Electricité_BCG.ppt
M312_Electricité_BCG.ppt
 
Cours_P627_11_03_2023.ppt
Cours_P627_11_03_2023.pptCours_P627_11_03_2023.ppt
Cours_P627_11_03_2023.ppt
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
Cours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptxCours Master Embarqué 2019-2020.pptx
Cours Master Embarqué 2019-2020.pptx
 
Cours_SAM(M14).ppt
Cours_SAM(M14).pptCours_SAM(M14).ppt
Cours_SAM(M14).ppt
 
capteurs II.pptx
capteurs II.pptxcapteurs II.pptx
capteurs II.pptx
 
diaporama_1_professeurs_94e.ppt
diaporama_1_professeurs_94e.pptdiaporama_1_professeurs_94e.ppt
diaporama_1_professeurs_94e.ppt
 
card_sorting.ppt
card_sorting.pptcard_sorting.ppt
card_sorting.ppt
 
Initiation_a_l_informatique.pptx
Initiation_a_l_informatique.pptxInitiation_a_l_informatique.pptx
Initiation_a_l_informatique.pptx
 
Les microcontrôleurs PIC.pptx
Les microcontrôleurs PIC.pptxLes microcontrôleurs PIC.pptx
Les microcontrôleurs PIC.pptx
 
Cours_Physique_des_Composants_dElectroni.pptx
Cours_Physique_des_Composants_dElectroni.pptxCours_Physique_des_Composants_dElectroni.pptx
Cours_Physique_des_Composants_dElectroni.pptx
 
le-courant-electrique-continu-cours-ppt-3.pdf
le-courant-electrique-continu-cours-ppt-3.pdfle-courant-electrique-continu-cours-ppt-3.pdf
le-courant-electrique-continu-cours-ppt-3.pdf
 
Cours - Lois de l'électricité - Light.pptx
Cours - Lois de l'électricité - Light.pptxCours - Lois de l'électricité - Light.pptx
Cours - Lois de l'électricité - Light.pptx
 
manual-pe-2017_compress.pdf
manual-pe-2017_compress.pdfmanual-pe-2017_compress.pdf
manual-pe-2017_compress.pdf
 

Último

GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...Institut de l'Elevage - Idele
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Ville de Châteauguay
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusInstitut de l'Elevage - Idele
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...Institut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de planchermansouriahlam
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesInstitut de l'Elevage - Idele
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...Institut de l'Elevage - Idele
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...Institut de l'Elevage - Idele
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéInstitut de l'Elevage - Idele
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfSophie569778
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirstjob4
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageInstitut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestionyakinekaidouchi1
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...Institut de l'Elevage - Idele
 

Último (20)

GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
GAL2024 - Renouvellement des actifs : un enjeu pour la filière laitière franç...
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
 
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenusGAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
GAL2024 - Situation laitière 2023-2024 : consommation, marchés, prix et revenus
 
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
GAL2024 - Traite des vaches laitières : au coeur des stratégies d'évolution d...
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
conception d'un batiment r+4 comparative de defferente ariante de plancher
conception d'un  batiment  r+4 comparative de defferente ariante de plancherconception d'un  batiment  r+4 comparative de defferente ariante de plancher
conception d'un batiment r+4 comparative de defferente ariante de plancher
 
GAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentesGAL2024 - Changements climatiques et maladies émergentes
GAL2024 - Changements climatiques et maladies émergentes
 
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
GAL2024 - Consommations et productions d'énergies dans les exploitations lait...
 
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024  Bâtiment et Photovoltaïque.pdfJTC 2024  Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
 
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
GAL2024 - Parcellaire des fermes laitières : en enjeu de compétitivité et de ...
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
GAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversitéGAL2024 - L'élevage laitier cultive la biodiversité
GAL2024 - L'élevage laitier cultive la biodiversité
 
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdfWBS OBS RACI_2020-etunhjjlllllll pdf.pdf
WBS OBS RACI_2020-etunhjjlllllll pdf.pdf
 
firefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdffirefly algoriyhm sac a dos step by step .pdf
firefly algoriyhm sac a dos step by step .pdf
 
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engageGAL2024 - Décarbonation du secteur laitier : la filière s'engage
GAL2024 - Décarbonation du secteur laitier : la filière s'engage
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 
comprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestioncomprehension de DDMRP dans le domaine de gestion
comprehension de DDMRP dans le domaine de gestion
 
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
GAL2024 - Méthane 2030 : une démarche collective française à destination de t...
 

pres_chapter5 (5).pptx

  • 1. Programmation des interruptions et des temporisations Interruptions et leurs traitements. Configuration des registres de contrôle. Exemples d’applications. Timers pour la gestion du temps. Configuration des registres de contrôle. Exemples d’applications.
  • 2. Interruptions et leurs traitements Mécanisme général d’une interruption. Une routine d’interruption peut être considérée comme un sous programme déclenché par l’apparition d’un évènement spécifique. Le programme se déroule normalement. L’évènement survient Le programme achève l’instruction en cours de traitement Le programme traite l’interruption. L’évènement qui déclenche l’interruption doit remplir deux conditions : - l’évènement doit être dans la liste des évènements susceptibles de provoquer une interruption - l’utilisateur doit avoir autorisé l’interruption, c'est-à-dire avoir signalé que l’évènement en question devait générer une interruption.
  • 3. Mécanisme d’interruption sur un PIC Une interruption est un événement imprévisible qui provoque l’arrêt d’un programme en cours d’exécution pour aller exécuter un autre programme appelé programme (ou routine) d’interruption. A la fin du programme d’interruption, le microcontrôleur reprend le programme principal à l’endroit où il s’est arrêté. Toute interruption provoque une sauvegarde de l’adresse PC (c'est-à-dire l’adresse en cours du programme au moment ou est intervenu l’interruption) dans une pile interne à 8 niveau et l’exécution du programme est routé à l’adresse 0x04 de la mémoire FLASH. Cette adresse est réservée pour les interruptions. Enfin, une interruption ne peut pas être interrompu par une autre interruption sauf si le programmateur remet le flag GIE à un trop tôt. Les interruptions sont remises automatiquement en service après le retour dans la boucle principale .
  • 4. Types d’interruptions • On distingue deux types d’interruptions : Les interruptions externes, qui sont déclenchées lorsqu’un événement extérieur se produit tels que le changement d’état d’une entrée destinée à l’interruption. Les interruptions internes, qui sont déclenchées par le déroulement du programme tel que le résultat d’un calcul ou le débordement d’un Timer. • Toute interruption est gérée à l’aide de 3 bits : Un bit indicateur ou drapeau (Flag bit). Ce bit est mis à 1 lorsque l’interruption correspondante survient. Un bit d’activation (Enable bit). Ce bit permet d’activer ou de désactiver l’interruption correspondante. Un bit d’activation globale (Global Enable bit). Ce bit permet d’activer ou de désactiver toutes les interruptions. Ces bits sont regroupés suivant le microcontrôleur cible dans des registres appelés registres de configuration des interruptions tels que : INTCON, PIE1, PIE2, PIR1 et PIR2. Le nombre de sources d’interruptions dépend du microcontrôleur utilisé.
  • 5. • En MikroC, le sous-programme d’interruption est déclaré en tant que fonction avec le nom spécial « Interrupt ». Cette fonction s’exécute automatiquement en réponse aux évènements déclencheurs des interruptions activées par l’utilisateur.
  • 6. REGISTRE DE CONFIGURATION DES INTERRUPTIONS • Le registre INTCON (INTerrupt CONtroller) est le registre principal de contrôle et de gestion des interruptions. Suivant le type du microcontrôleur donc du nombre de sources d’interruptions, le registre INTCON est parfois accompagné par d’autres registres tels que (PIE, PIR1, etc.) pour gérer la totalité des sources d’interruptions disponibles. Le registre INTCON est parfois différent d’un PIC à un autre. Il est impératif de revenir au document constructeur pour chaque type de microcontrôleur (Data sheet).
  • 7. EXEPLE D’APPLICATION • 1. Exemple 1 Soient 4 LEDs connectés sur les pins RA0, RA1, RA2 et RA3 du Port A. Utiliser l’interruption sur (RB4-RB7) pour faire basculer l’état des LEDs (RB4 commande RA0, RB5 commande RA1 et ainsi de suite).
  • 8. • 2. Exemple 2 Utiliser l'interruption pour changer la vitesse de clignotement de la diode Led connecté sur la pin RA0 selon le schéma de la figure ci-dessous. EXEPLE D’APPLICATION(2)
  • 9. Temporisations et comptages Les différents modes de fonctionnement La 16F84 ne comporte qu’un seul timer sur 8 bits, contrairement à d’autres PICs de la famille (comme la 16F877). Si on examine attentivement le fonctionnement du timer0, nous verrons qu’il s’agit en fait d’un compteur. Le timer0 est en fait un compteur. Nous avons deux possibilités: En premier lieu, nous pouvons compter les impulsions reçues sur la pin RA4/TOKI. Nous dirons dans ce cas que nous sommes en mode compteur Nous pouvons aussi décider de compter les cycles d’horloge du PIC lui-même. Dans ce cas, comme l’horloge est fixe, nous compterons donc en réalité du temps. Donc, nous serons en mode « timer ». La sélection d’un ou l’autre de ces deux modes de fonctionnement s’effectue par le bit 5 du registre OPTION : T0CS pour Tmr0 Clock Source select bit. T0CS = 1 : Fonctionnement en mode compteur T0CS = 0 : Fonctionnement en mode timer Dans le cas où vous décidez de travailler en mode compteur, vous devez aussi préciser de quelle transition de niveau le comptage est effectué. Ceci est précisé grâce au bit 4 du registre OPTION : T0SE pour Timer0 Source Edge select bit. T0SE = 0 : comptage si l’entrée RA4/TOKI passe de 0 à 1 T0SE = 1 : comptage si l’entrée RA4/TOKI passe de 1 à 0
  • 10. Le registre tmr0 Ce registre, qui se localise à l’adresse 0x01 en banque0, contient tout simplement la valeur actuelle du timer0. Vous pouvez écrire ou lire tmr0. Si par exemple vous avez configuré tmr0 en compteur, la lecture du registre tmr0 vous donnera le nombre d’événements survenus sur la pin RA4/TOKI. Les méthodes d’utilisation du timer0 1Le mode de lecture simple La première méthode qui vient à l’esprit est la suivante : Nous lisons le registre tmr0 pour voir ce qu’il contient. La valeur lue est le reflet du nombre d’événements survenus, en prenant garde au fait que le tmr0 ne peut compter que jusque 255. En cas de dépassement, le tmr0 recommence à 0. 2Le mode de scrutation du flag Nous devons savoir à ce niveau, que tout débordement du timer0 (passage de 0xFF à 0x00) entraîne le positionnement du flag T0IF du registre INTCON. Vous pouvez donc utiliser ce flag pour déterminer si vous avez eu débordement du timer0, ou, en d’autres termes, si le temps programmé est écoulé. Cette méthode à l’inconvénient de vous faire perdre du temps inutilement 3Le mode d’interruption C’est évidemment le mode principal d’utilisation du timer0. En effet, lorsque T0IE est positionné dans le registre INTCON, chaque fois que le flag T0IF passe à 1, une interruption est généree
  • 11. Le prédiviseur Supposons que nous travaillons avec un quartz de 4MHz. Nous avons donc dans ce cas (4000000/4) = 1.000.000 de cycles par seconde. Chaque cycle d’horloge dure donc 1/1000000ème de seconde, soit 1µs. Si nous décidons d’utiliser le timer0 dans sa fonction timer et en mode interruptions. Nous aurons donc une interruption toutes les 256µs, soit à peut près toutes les quarts de millième de seconde. Si nous désirons réaliser une LED clignotante à une fréquence de +- 1Hz, nous aurons besoin d’une temporisation de 500ms, soit 2000 fois plus. Ce n’est donc pas pratique. Nous disposons pour améliorer ceci d’un PREDIVISEUR . Qu’est-ce donc ? Et bien, tout simplement un diviseur d’événements situé AVANT l’entrée de comptage du timer0. Nous pourrons donc décider d’avoir incrémentation de tmr0 tous les 2 événements par exemple, ou encore tous les 64 événements. Le tableau suivant représente les valeurs des bits PS0 à PS2 du registre OPTION qui déterminent la valeur du prédiviseur. Ces valeurs varient, pour le timer0, entre 2 et 256. Le bit PSA, quand à lui, détermine si le prédiviseur est affecté au timer0 ou au watchdog. Voici le tableau exprimant toutes les possibilités de ces bits :
  • 12. PSA à PS0 sont les bits de configuration du prédiviseur /tmr0 indique la valeur du prédiviseur résultante sur le timer0 /WD indique la valeur du prédiviseur résultante sur le Watchdog temps tmr0 indique le temps max entre 2 interruptions tmr0 avec quartz de 4MHz Temps watchdog indique le temps typique disponible entre 2 reset watchdog (indépendant du quartz utilisé). La valeur entre parenthèses indique le temps minimal, qui est celui à utiliser pour faire face à toutes les circonstances.
  • 13. Exemple 1 unsigned temps : 16; char newtmro; void main () { PORTB=0; TRISB= 0x00; OPTION = 0xC5; temps=0; newtmro = TMRO+1; for (; { clrwdt(); if (TMRO == newtmro) { ++temps; ++newtmro; } if (temps == 15625) { RB0_bit =! RB0_bit; temps=0; } } }Exemple
  • 14. unsigned cnt; void interrupt() { cnt++; // Increment value of cnt on every interrupt TMR0L = 96; INTCON = 0x20; // Set T0IE, clear T0IF } void main() { ADCON1 = 0x0F; // Set AN pins to Digital I/O T0CON = 0xC4; // Set TMR0 in 8bit mode, assign prescaler to TMR0 TRISB = 0; // PORTB is output PORTB = 0xFF; // Initialize PORTB TMR0L = 96; // Timer0 initial value INTCON = 0xA0; // Enable TMRO interrupt cnt = 0; // Initialize cnt do { if (cnt == 400) { PORTB = ~PORTB; // Toggle PORTB LEDs cnt = 0; // Reset cnt } } while(1); } Exemple 2
  • 15. LA PROGRAMMATION DES PICS PAR BIGONOFF PREMIERE PARTIE – PIC16F84 – Révision 5 Leçon N°10 LES INTERRUPTIONS EN MIKROC Par Mr Nizar TOUJENI