Utiliser les PIC 16F et 18F/Exercices/Le mode comparaison du module CCP (Capture Compare PWM)

Leçons de niveau 15
Une page de Wikiversité, la communauté pédagogique libre.
Le mode comparaison du module CCP (Capture Compare PWM)
Image logo représentative de la faculté
Exercices no9
Leçon : Utiliser les PIC 16F et 18F
Chapitre du cours : Le mode comparaison du module CCP (Capture Compare PWM)

Exercices de niveau 15.

Exo préc. :Interruption timer0 en langage C
Exo suiv. :Le mode capture du module CCP (Capture Compare PWM)
En raison de limitations techniques, la typographie souhaitable du titre, « Exercice : Le mode comparaison du module CCP (Capture Compare PWM)
Utiliser les PIC 16F et 18F/Exercices/Le mode comparaison du module CCP (Capture Compare PWM)
 », n'a pu être restituée correctement ci-dessus.




Un petit rappel de la documentation du module comparaison avant de commencer :

Le timer1 et ses registres

Exercice 1[modifier | modifier le wikicode]

Le PIC® possède un oscillateur de fréquence 4 MHz. Quelle est la plus petite valeur de la période de déclenchement des interruptions que l’on peut générer avec cette horloge interne ?

Exercice 2 Réalisation d'un signal de 1 Hz et son amélioration[modifier | modifier le wikicode]

1°) Notre horloge quartz a une fréquence de 20 MHz. Utiliser le résultat de l'exercice 1 pour répondre : par combien doit-on diviser la fréquence de CCP1IF minimale pour obtenir un temps de 500000 ms (0,5 s)?

2°) On choisit une division par 5. Le principe sera donc d'attendre CCP1IF cinq fois sans oublier de le remettre à 0 et d'inverser par logiciel la sortie RC2. Il nous faut donc choisir un mode de fonctionnement logiciel (1010 qui n'agit pas sur RC2). Écrire le programme complet.


3°) Avec la technique de la question précédente, il nous est absolument impossible de régler exactement la fréquence de sortie. On va essayer de palier à cet inconvénient en utilisant un autre mode qui n'agit pas sur RC2 mais a l'avantage de déclencher une remise à 0 du timer1 quand il y a comparaison : c’est le mode 1011. Calculer la valeur à mettre dans CCPR1.

Écrire le programme.

4°) Compléter le programme précédent pour qu’il envoie sur une liaison série (avec un printf) le temps en heure minute seconde.

On verra plus tard qu'une méthode plus précise consiste à utiliser un quartz horloger.