T.P. Réseaux : Bus CAN TP n°2 : Utilisation du compilateur C18 Semestre 3
I.U.T. de Nîmes Département : G.E.I.I. page 1
TP n°2 : Utilisation du compilateur C18
Ce deuxième TP doit vous permettre d'apprendre à travailler avec le compilateur C18. Ce compilateur gratuit de
Microchip est un peu déroutant au début, mais les instructions sont plus proches du microcontrôleur que celles
du compilateur CCS, un peu à l'image des instructions en assembleur.
Premier programme : Del clignotante à 1Hz
Pour ce premier programme, on choisit de faire clignoter la Del verte associée à la ligne 5 du port A.
Le programme
#include <p18f4580.h> // Déclaration du µC
//#pragma config OSC=HS, PWRT=ON, WDT=OFF, LVP=OFF // Configuration des fusible du µC
#include <delays.h> // Appel de la librairie des temporisations
#define Del_Ve PORTAbits.RA5 // Associe le nom Del_Ve à la ligne RA5
void main (void) // Fonction main pour démarrer
{
TRISAbits.RA5 = 0; // Configuration de la ligne A5 du Port A en sortie
while (1) // Boucle infinie
{
Del_Ve = 0; // La ligne RA5 est mise à 0 : La Del verte s'allume
Delay10KTCYx (250); // Temporisation de 500ms
Del_Ve = 1; // La ligne RA5 est mise à 1 : La Del verte s'éteint
Delay10KTCYx (250);
}
}
Explication et Comparaison avec CCS
#include <p18f4580.h> // Déclaration du µC
Pas de différence avec le compilateur CCS, il faut appeler le fichier associé au composant
//#pragma config OSC=HS, PWRT=ON, WDT=OFF, LVP=OFF // Configuration des fusibles du µC
Oscillateur > 4MHz; PWRT Reset à la mise sous tension; WatchDogTimer (Chien de garde) bloqué;
LowVoltageProgrammation bloqué.
Ligne placée en commentaire en présence d'un bootloader.
#include <delays.h> // Appel de la librairie des temporisations
Une première différence avec CCS, la librairie des fonctions de temporisations doit être spécifiée.
#define Del_Ve PORTAbits.RA5 // Associe Del_Ve à la ligne RA5
Autre différence, mais plus intéressante, on peut associer directement une ligne d'un port à un nom. Ce
qui va simplifie la commande de la ligne (voir plus bas). Ce type de déclaration est aussi possible avec le
compilateur CCS, même si elle n'est pas utilisée systématiquement.
TRISAbits.RA5 = 0; // Configuration de la ligne A5 du Port A en sortie
Configuration d'une ligne d'un port en entrée ou en sortie
Del_Ve = 0; // La ligne RA5 est mise à 0 : La Del verte s'allume