Comme il se doit, le premier programme proposé sur PIC24 est du type Hello World ! (pour électronicien) qui fait clignoter une Led à une fréquence de 1 Hertz avec un rapport cyclique variable suivant l’appui sur un bouton ou au bout d’un certain temps de fonctionnement. La platine électronique utilisée est la Clé USB sur micro-contrôleur.
Le seul intérêt d’un tel programme est de tester et qualifier la chaîne de production depuis l’écriture du code assembleur, l’ajustement des bits de configuration du PIC24 jusqu’à la programmation du circuit pic24fj64gb002 (cf. le projet Programmation pour PIC24).
Afin de faciliter la compréhension des points importants de ce programme ambitieux ;-), vous pouvez dès à présent télécharger son listing HelloWorld-0.lst.
Ces point importants abordés dans l’article sont :
- La description de certains bits de configuration des 4 registres CW1, CW2, CW3 et CW4 (cf. le § 26.1 Configuration Bits – Page 275 du document Spécifications PIC24FJ64GB004 Family) avec notamment les choix pour fixer la fréquence de l’horloge interne Fosc à 32 MHz issue du quartz externe de 12 MHz de la platine électronique.
- L’initialisation impérative de certains registres.
- La routine de temporisation de 10 mS n’utilisant pas de Timer et qui est à la base de l’allumage ou de l’extinction de la Led toutes les secondes en application de la spécification PIC24F Family Reference Manual (CPU) . Le rapport cyclique du clignotement sera :
- 20 % durant une période de 30 secondes à l’issue desquelles l’étape b. est exécutée.
- 60 % durant une période de 30 secondes à l’issue desquelles l’étape a. est exécutée terminant ainsi un cycle qui se répète inexorablement.
- 80 % si appui sur le bouton connecté sur la pin programmée en entrée RB15 pendant l’étape a. Le bouton est inopérant pendant l’étape b.
- La routine de « mise sur voie de garage » en cas d’apparition d’une des 4 erreurs suivantes :
- Oscillateur en défaut.
- Utilisation d’une adresse mémoire ou programme invalide.
- Pointeur de Pile W15 invalide.
- Opération mathématique invalide.