< Utiliser les PIC 16F et 18F < Exercices



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

Le timer1 et ses registres

Exercice 1

Le PIC® possède un oscillateur de fréquence 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 Hz et son amélioration

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.

Remarque

On pourrait utiliser le flag de débordement du Timer1 (TMR1IF du registre PIR1) pour faire la même chose, ce qui n'utiliserait pas le module CCP.

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.

Cet article est issu de Wikiversity. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.