INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 -...

16
IUT Réseaux & Télécoms - La Rochelle INITIATION AUX MICROCONTRÔLEURS MICROCHIP PIC 18F4520 Gestion du temps

Transcript of INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 -...

Page 1: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT Réseaux & Télécoms - La Rochelle

INITIATION AUX MICROCONTRÔLEURS

MICROCHIP PIC 18F4520Gestion du temps

Page 2: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 2

Généralités● Dans un programme, il est souvent nécessaire de

réaliser des temporisations :➢ Réglage de débit pour une transmission de donnée

sur un port.➢ Attente du traitement d'une information par un circuit

périphérique.➢ ...

● Pour cela on va exploiter l'horloge du microcontrôleur pour créer des délais d'attente.

Page 3: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 3

L'horlogeLes microcontrôleurs PIC disposent d'une horloge que l'on peut configurer dans différents modes de fonctionnement :

● LP : Low Power Crystal● XT : Crystal/Resonator● HS : High Speed Crystal/Resonator● HSPLL : High Speed Crystal/Resonator with PLL● RC : External Resistor/Capacitor● INTIO : Internal Oscillator● EC : External clock

Le choix d'un mode de fonctionnement se fait en positionnant des bits de configuration.

Page 4: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 4

Configurations de l'oscillateur● Oscillateur à quartz

● Oscillateur à circuit RC

Page 5: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 5

Bits de configurationLa configuration du mode de fonctionnement de l'oscillateur peut se faire de deux manières :

● par programmation : en positionnant directement les bits du registre de configuration dans le programme

● avec le logiciel MPLAB : en sélectionnant la fenêtre « Configuration bits »

Page 6: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 6

L'instruction NOP( ) L'instruction nop() (acronyme de no operation) est une instruction dont le seul but est de gaspiller un cycle d'horloge du microcontrôleur (4 périodes d'oscillation du quartz). En appelant cette instruction on doit obtenir le plus petit temps d'exécution possible.

Pour la carte de développement Picdem2+, avec un quartz de 4MHz, cette instruction consommera donc 1µs.

En langage C, il suffit d'écrire nop( )

Ex : temporisation de 3µsnop();nop();nop();

Cette méthode est la plus simple à mettre en oeuvre. Elle convient parfaitement pour des petites temporisations (< 10 µs).

Page 7: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 7

Boucle d'attenteUne autre manière simple de créer une temporisation sera de réaliser une boucle qui « consomme du temps ».

ex : for (temps=0 ; temps<100 ; temps++)nop();

Attention : la boucle elle-même prend du temps à se réaliser. Il y a donc trois étapes pour utiliser cette méthode :

➢ Ecriture de la boucle➢ Test et évaluation de la durée de la boucle➢ Réglage de la boucle

Cette méthode est peu précise et nécessite de connaître la durée d'exécution de la boucle. D'autre part, le microcontrôleur est monopolisé pendant toute la durée de la boucle et il est impossible de réaliser d'autres opérations.De plus la limitation de la borne supérieure de la variable ne permet pas de dépasser quelques centaines de ms.

Page 8: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 8

Fonctions C18Le compilateur C18 est fourni avec une bibliothèque (delays.lib) contenant des fonctions qui réalisent des boucles d'attentes calibrées et multiples de « temps de cycles » (Tcy).

Pour calculer la durée d'une temportisation, il faudra prendre en compte la fréquence de fonctionnement de l'oscillateur.

Page 9: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 9

Les TimersLes PIC 18Fxx20 sont équipés de trois « Timers » qui vont permettre de compter des impulsions d'horloge tout en permettant au microcontrôleur d'effectuer d'autres opérations.

Ex : Timer 0 (mode 8bits)

Page 10: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 10

Le Timer 0●Le Timer 0 est composé des éléments suivants :

➢ TMR0L (TMR0H) : c'est un registre 8 bits qui compte les fronts du signal qu'on lui fournit. Arrivé à 255 il repasse à 0 et passe un drapeau (flag) TMR0IF au niveau haut pour indiquer un overflow.

➢ Prescaler : il divise la fréquence du signal qu'on lui fournit par une constante que l'on programmera.

➢ Aiguillages : ils permettent de définir le chemin qu'emruntera le signal

➢ Bits de configuration : ils permettent de configurer le fonctionnement du Timer

➢ Synchro : retarde le fonctionnement du Timer de 2 cycles afin de synchroniser avec l'horloge.

Page 11: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 11

Configuration du Timer 0

Page 12: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 12

Utilisation du Timer en C

#include <p18f4520.h>#define LED PORTBbits.RB0

unsigned char temps=0;

void main(void){ /* Configuration du PortB */

TRISB = 0xF0;LED = 0;

/* Configuration du Timer 0 */T0CON=0x07; /* Predivision par 256 */T0CONbits.PSA=0; /* Prescaler actif */T0CONbits.T0SE=0; /* Front montant */T0CONbits.T0CS=0; /* Horloge interne */T0CONbits.T08BIT=1; /* Mode 8 bits */T0CONbits.TMR0ON=1; /* Validation du Timer */

while(1){if(TMR0L==244)

{temps++;TMR0L=0;}

if(temps==16){LED=!LED;temps=0;}

}}

Page 13: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 13

Registres associés au Timer 0

Le bit TMR0IF (Timer0 Interrupt Flag) est positionné à 1 lorsque le registre TMR0 passe en overflow (FFh à 00h en mode 8 bits). Il permet de déclencher une interruption.

Page 14: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 14

Le TIMER 1

Page 15: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 15

Configuration du Timer 1

Page 16: INITIATION AUX MICROCONTRÔLEURS - …demay.iut.lr.free.fr/doc/1A/Informatique/I2-2 - Programmation... · Les microcontrôleurs PIC disposent d'une horloge que l'on peut ... par programmation

IUT R&T 16

Registres associés au Timer 1