11/06/2019 1 Ecole Nationale Polytechnique –Constantine. Département EEA Doctor
11/06/2019 1 Ecole Nationale Polytechnique –Constantine. Département EEA Doctorat troisième cycle – 1ière. année. Electrotechnique Cours. Circuits Programmables Chapitre III. (Partie 3) Programmation des microcontrôleurs Année Universitaire. 2018-2019 Durée du Cours: 1h30 Présenté par: Dr. S. BENSEGUENI (benskandix@gmail.com) 4. Programmation en C (Introduction) Dans cette partie, nous verrons les bases du langage C ordinaire, en nous limitant toutefois aux points communs avec le langage C PIC, c'est-à-dire aux commandes communes. Il est cependant à spécifier, que pour des raisons de commodité, nous verrons quelques points en plus, afin d’expliquer clairement le langage C ; points existant en C PIC, mais sous formes différentes. Circuits Programmables Dr. S. Bensegueni Un programme en langage C se compose de plusieurs parties : - Un appel de librairies, - Une fonction main, correspondant au programme principal, - Eventuellement d'un sous-programmes. Le code source peut contenir dans son en-tête des commentaires incluant le nom, l'auteur, le hardware, le software,... Ensuite, une initialisation de la configuration de quelques registres est introduite en utilisant : #pragma config. Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Introduction) 11/06/2019 2 Parmi ces registres le watchdog, le type de l'oscillateur, la low-voltage protection, ... Exemple : #pragma config WDT = OFF #pragma config OSC = HS #pragma config LVP = OFF #pragma config DEBUG = OFF Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Introduction) Parmi ces registres le watchdog, le type de l'oscillateur, la low-voltage protection, ... Exemple : #pragma config WDT = OFF #pragma config OSC = HS #pragma config LVP = OFF #pragma config DEBUG = OFF Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Introduction) Elles sont utilisées pour compléter et aider à écrire le programme principal, en contenant toutes les informations et les détails dont a besoin le programme principal ou main. Il a accès à ces directives par l’intermédiaire d’instructions spécifiques pour chaque librairie. Alors pour utiliser une librairie, il faut l'appeler par son nom par le programme principal. On l'appelle par la commande : #include <nom_de_la_librairie.h> Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Librairies) 11/06/2019 3 Il s’agit du programme principal. Autrement dit, c'est dans ce programme qu’on écrira notre code. Cette fonction peut faire appel à des sous fonctions, lesquelles peuvent être situées dans des librairies ou écrit après le main. Il faut remarquer qu'une fonction est composée de l’en-tête comprenant son nom et éventuellement ses paramètres, et d’un bloc, commençant par { et finissant par }, indiquant le code correspondant à l’en-tête. Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Fonction main) Il faut savoir que chaque port contient trois registres pour effectuer ces opérations, ces registres sont le TRIS (data direction register), PORT (reads the levels on the pins of the device) et LAT (output latch). On déclarera ainsi, les ports d'entrées/sortie et affectera à chaque numéro de port un rôle comme entrée ou comme sortie. Cette affectation est réalisée par l'utilisation de l'instruction TRISX (tel que X est l'un des ports du PIC: X peut être A, B, C,...), si TRISX=0x00, alors le port X est considéré comme sortie, et si TRISX=0xFF, alors le port X est considéré comme entrée. Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Fonction main) Il faut noter, qu'on peut effectuer des affectations en binaire (exemple: TRISX=0b00011001) ou en décimal (exemple: 19), dans ce dernier exemple, le port X est une combinaison entre des pines en entrées et d'autres en sorties. On peut affecter à une des pines du port X une valeur en mettant un point puis le numéro de la pine (exemple: TRISX.numéro ou PORTX.numéro). Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Fonction main) 11/06/2019 4 Ce sont les programmes secondaires ou des sous- fonctions, utilisés par le programme principal. L’utilité de créer des sous fonction apparaît surtout lorsqu’une tache se répète plusieurs fois dans le même programme, on définit une seule fois le code, dans un sous programme, et on l’appelle le nombre de fois qu'on veut. On économise ainsi l'espace mémoire par une optimisation du code. La création possible de sous programme doit être une des choses à avoir à l’esprit lorsqu’on cherche à optimiser le code. Lorsque la possibilité se présente, il faut alors juger s’il est plus judicieux de créer un sous programme, ou alors de laisser le code tel quel, en se référençant à la longueur du programme. Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Sous programme) Exemple. On écrit un code qui génère un clignotement des leds rouges si un bouton poussoir est maintenu et s'il est relâché un clignotement des leds vertes est aperçu. On utilise deux sous programmes pour générer les clignotements des leds: void LedRouge() { PORTC = 0x0f; Delay_ms(1000); // Delay of 1s PORTC = 0x00; Delay_ms(1000); return; } Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Sous programme) void LedVerte() { PORTC = 0xf0; Delay_ms (1000); PORTC = 0x00; Delay_ms (1000); return; } void main() { while(1) { if(PORTB & 0b00000001) LedRouge(); else LedVerte(); } } Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Sous programme) 11/06/2019 5 Il faut respecter lors de l'utilisation du langage C pour les PIC les règles suivantes : - Une ligne se finit toujours par un point virgule : ; - Lorsque l’on désire faire des commentaires, on suivra l'une des manières suivantes : 1. Pour une ligne seule, on utilise un double slash : // (il n’est pas nécessaire de mettre un point virgule à la fin du commentaire). 2. Pour un paragraphe, ou plusieurs lignes consécutives, on utilise /* pour indiquer le début du commentaire et */ pour en indiquer la fin. Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Autres recommandations sur l'utilisation du C pour PIC) - Dans un programme, on utilise souvent des variables pour effectuer des opérations. Il faut savoir qu'il y a une différence entre le majuscule et le minuscule et que toutes les variables doivent être définit en premier lieu dans un programme. Elles peuvent principalement être de trois types : int (pour les entiers), float (pour les chiffres à virgule), char (pour les caractères). Si on veut définir la taille d'un vecteur, on écrira la taille entre deux crochets après la variable en question. Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Autres recommandations sur l'utilisation du C pour PIC) Exemple : int x, y ; float c[10] ; Il est possible d’affecter une valeur à une variable lors de sa définition, Exemple : int a=2 ; //créer a comme entier, et lui affecte la valeur 2. Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Autres recommandations sur l'utilisation du C pour PIC) 11/06/2019 6 On peut utiliser plusieurs opérateurs comme : + pour l'addition, - pour la soustraction, * pour la multiplication, / pour la division, % pour le modulo, = pour l'égalilité, != pour la différence, > pour le supérieur, < pour l'inférieur, le ET (&&) et pour un bit (&), le OU inclusif (||) et pour un bit (|) et le NON (!), on peut mettre aussi ++ (ou --) pour ajouter (ou soustraire) 1 à la valeur de la variable. Quand on met a==b, on va comparer a et b. Pour le décalage à gauche on utilise (<<) et pour le décalage à droite (>>). Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Autres recommandations sur l'utilisation du C pour PIC) - Les opérateurs conditionnels sont aussi très utilisés dans un programme en C du PIC, dans ce cas, les accolades sont obligatoires, donnant une indication que ce qu’il y a à l’intérieur fait partie de l’instruction conditionnelle. Il faut noter cependant, que dans le cas ou il n’y a qu’une seule ligne, on peut les enlever. Il y a plusieurs instructions conditionnelles : IF, SWITCH, WHILE et DO...WHILE: IF est utilisée dans le cas où on veut réaliser une opération si une condition est vérifiée sinon (si elle n'est pas vérifiée) on réalise l'opération qui vient après ELSE. Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Autres recommandations sur l'utilisation du C pour PIC) Exemple : Ecrire le programme qui réalise la condition si x=y alors a=b, sinon a=c, on va l'écrire en C, comme suit : if (x==y) { a=b ; } else { a=c ; } Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Autres recommandations sur l'utilisation du C pour PIC) 11/06/2019 7 L'instruction SWITCH est utilisée si on veut vérifier plusieurs conditions à la fois. Elle est associée à CASE qui va définir les différentes conditions et BREAK pour arrêter l'exécution de la condition. Exemple : Ecrire le programme qui réalise la condition de surveillance de a ; si a=1, alors b=-1 ; si a=2, alors b=-2. switch (a) { case ‘1’: b=-1; break; case ‘2’: b=-2; break; } Circuits Programmables Dr. S. Bensegueni 4. Programmation en C (Autres recommandations sur l'utilisation du C pour PIC) L'instruction WHILE est utilisée pour effectuer une opération tant qu'une condition est uploads/S4/ 8-chapitre3-3.pdf
Documents similaires










-
21
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 09, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.0585MB