C with Device Initialization Tutorial

 


Traduction du tutorial animé disponible dans l'IDE de CodeWarrior

Initialisation de configuration matérielle
    Le plugin d'initialisation de configuration matérielle est un outil facile à utiliser mais puissant pour configurer et produire un code d'initialisation pour les périphériques de MCU. Pour plus d'information voir svp l'aide en ligne d'initalisation de matériel.

Contenu du tutoriel
     
Ce tutoriel simple décrit la création d'un projet en langage C Avec l'outil rapide de développement d'initialisation de configuration matérielle d'applications. Le résultat du projet est une application simple de clignotement d'une LED. La LED est reliée à une broche de l'unité centrale et elle est commandée par une interruption périodique générée par un timer.






1-
Cliquez sur le bouton  Create New Project dans l'écran de démarrage.
Si CodeWarrior tourne déjà, appelez l'assistant en utilisant le menu File... New Project.





2- Entrez "LED1C" comme nom de projet et cliquez sur le bouton Next





3- Choisissez le MC9S08GB60 CPU (HCS08-->HCS08G family-->MC9S08GB60)
et sélectionnez la connexion pour le déboguage (par exemple P&E Multilink/Cyclone Pro).
Cliquez sur le bouton Next



4-Cliquez sur le bouton Next pour éviter l'addition de fichiers externes





5-
Sélectionnez Device Initialization dans les Options de Développement Rapide d'Applications
et cliquez sur le bouton finish




6-
Cliquez sur le champ PTF pour configurer le port F.
La broche 0 de ce port, connectée à une LED sera utilisée comme une sortie.




7- Modifiez la propriété Port control dans le groupe Settings pour la positionner sur la valeur Individual pins




8-
Enable Pin 0 et mettez sa direction en Outpout (cliquez sur le bouton avec la flèche antihoraire et utilisez le menu déroulant pour la direction).




9-
Cliquez sur le champ TPM1 pour configurer le timer.
Les interruptions de ce timer seront utilisées pour faire clignoter la LED.
Positionnez le paramètre de la Clock source select (dans le groupe 'Settings') à Bus rate clock (menu déroulant)
Sélectionnez 32 comme prescaler. (menu déroulant)
L'initialisation du timer continue dans l'étape suivante

 



10-
Enable Overflow interrupt dans le groupe Interrupts.
Ecrivez LEDtimer dans le cartouche ISR name
Cliquez sur le bouton OK pour confirmer l'initialisation

 


11-
Cliquez sur Generate Code pour appeler le Code Generation Options Dialog
Cliquez sur le bouton Generate pour générer le code
Confirmez en cliquant sur le bouton OK
Le code généré apparait dans le dossier
Generated code dans la liste des fichiers CodeWarrior

 

12- La fonction générée MCU_init du fichier MCUinit.c doit être appelée au démarrage de la routine principale
Double-cliquez sur le fichier main.c pour l'ouvrir dans l'éditeur et supprimez l'état de commentaire de la ligne avec l'appel à la fonction MCU_init:
 /* MCU_init();*/
Fermez alors la fenêtre de l'éditeur et cliquez sur le bouton Save dans le dialogue d'enregistrement pour enregistrer le fichier

 


13-
Il est nécessaire de sortir du commentaire la déclaration du vecteur 0 dans le fichier Project.prm parce qu'il est remplacé par la table de vecteurs d'interruption générée par l'outil d'initialisation de matériel dans le fichier MCUinit.c
Déroulez le dossier Project Settings / Linker files dans la table des fichiers du panneau de projet et double-cliquez sur le fichier Project.prm pour l'ouvrir dans l'éditeur. Sortez du commentaire la ligne suivante en placant deux slashes // au début de la ligne:
VECTOR 0 _Startup /* Reset vector....
Fermez alors la fenêtre de l'éditeur et cliquez sur le bouton save dans le doalogue d'enregistrement pour enregistrer le fichier





14- Tapez ou copiez les 3 lignes suivantes dans le corps généré (par l'assistant) du LEDtimer ISR du fichier MCUinit.c à la place de "*/write your interrupt code here...
/*":
PTFD_PTFD0 = ~PTFD_PTFD0;    // invert the output values

TPM1SC;                      // read the timer overflow status

TPM1SC_TOF = 0;              // and clear it

 

 

 

15- Cliquez sur l'icône Make pour compiler et "linker" l'application
Ignorez le message d'avertissement du compilateur
Cliquez sur l'icône Debug pour lancer le débogueur

** Dans le débogueur sélectionnez votre type de connexion, cliquez sur le bouton Connect et confirmez le dialogue de programmation de la mémoir flash.

Lancez l'application en utilisant l'icône Start et la LED devrait clignoter à des intervalles de 0.5 secondes.


NB: ce dernier point ne s'applique pas au JMBadge qui a un mode de téléchargement du code assembeur qui fait appel à un bootloader particulier qui charge des fichiers au format .S19 par glisser déposer dans le dossier du périphérique USB Removable Disk:

Vous trouverez le fichier xxx.S19 dans le dossier Bin de votre application

Exemple: si vous avez créé un projet LEDapp, vous le trouverez dans le dossier LEDapp > bin > LEDApp.S19