24 LES MICROCONTRÔLEURS Chapitre N°3 Mise en œuvre d’une application à base d’u
24 LES MICROCONTRÔLEURS Chapitre N°3 Mise en œuvre d’une application à base d’un microcontrôleur Objectifs à atteindre : Rappeler les structures algorithmiques fondamentales Réaliser des applications à base des microcontrôleurs Elaborer un programme spécifique à une application à base de microcontrôleur. 1 Parcours à suivre pour la mise en œuvre d’une application à base de microcontrôleur : La résolution et la conception par la méthode graphique des problèmes en logiques combinatoires, séquentielle ou système embarqué dont la commande met en œuvre des structures microprogrammes à base de microcontrôleurs, nécessite le passage par les étapes suivantes, quelques soit le type et la famille de microcontrôleur. Le schéma synoptique ci-dessous comprend trois phases distinctes. (1) Le développement matériel : s'appuie sur un cahier des charges, c.à.d. la définition des fonctionnalités et des performances du système. Cette phase doit permettre de spécifier les caractéristiques du microcontrôleur, de ses périphériques et de l'électronique associée. (2) Le développement logiciel : s'appuie sur la phase précédente pour construire un algorigramme, puis le code qui va être testé. Cette phase requiert que vous choisissiez le langage CDCF Organigramme Algorithme GRAFCET Assembleur et compilateur Simulateur Code Objet Analyse du système Transcription Programmation Test Transfert C 4 5 3 2 1 25 (assembleur et/ou évolué) que nous utiliserons sur des bases objectives, par exemple de manière à optimiser le temps de développement, la facilité de maintenance, le nombre d'opérations, etc. (3) La phase de test doit être menée pour vérifier que le cahier des charges initial est bien rempli. Cette phase de test « finale » n'empêche pas d'avoir mené des tests séparés lors des phases de développement matériel et logiciel. 2 Langage C : MikroC 2.1 Filière de développement : On désigne par filière de développement figure N°1 l’ensemble des outils qui rendre en œuvre pour passer du fichier texte (source codé en C) au code objet (code machine) téléchargé dans le microcontrôleur. Le tableau suivant présente les différentes extensions générées par la filière de développement Fichiers (Extensions) Description du contenu du fichier Fichiers (Extensions) Description du contenu du fichier .C Fichier source en langage C. .HEX Code objet (exécutable) téléchargé dans le μC .H Entête de définition des broches, Registres, Bits de Registres, Fonctions, et directives de pré- .TRE Montre l’organisation du programme sous forme d’arbre (découpages en Figure N°1 : Schéma synoptique de la filière de développement 26 compilation. fonction) et l’utilisation de la mémoire pour chaque fonction. .PJT Fichier de projet (pas obligatoire). .COF Code machine plus Informations de débogage .LST Fichier qui montre chaque ligne du code C et son code assembleur associé généré .ERR Erreurs éventuelles rencontrées durant la compilation. .SYM Indique la correspondance entre le nom des symboles (variables, bits, registres) et leur adresse hexadécimale en mémoire. .STA Fichier statistique sur l’espace mémoire occupé. etc. .ASM Fichier en langage assembleur. 2.2 Les variables : Il existe différents types de variables reconnus par le compilateur du MikroC: Par défaut, tous ces types de données sont non signés, ils peuvent être signé en rajoutant le mot clé signed devant le type. Type Description taille domaine signé domaine non signé bit Défini un nombre de 1 bit 1 bit X 0 ou 1 sbit Défini un nombre de 1 bit 1 bit X 0 ou 1 int Défini un nombre de 16 bits 16 bits -32768 à + 32767 0 à 65535 long (int) Défini un nombre de 32bits 32 bits [ -2 147 483 648 à 2 147 483 647] 0 à 4 294 967 295 char un caractère (codé en interne comme un octet) 8 bits 128 à + 127 0 à 255 float Nombre à virgule (réel) sur 32 bits 32 bits -1.5 * 1045 .. +3.4 * 1038 X short (int) Défini un nombre de 8 bits 8 bits 128 à + 127 0 à 255 void type non spécifié 27 2.3 Les opérateurs du langage C : MikroC Lors de son exécution, un programme est amené à effectuer des opérations qui peuvent être purement arithmétiques, de comparaison, d’affectation, etc… Type Description Type Symbole Exemple Opérateur d’affectation Affectation = x=11 ; y=a+b Opérateurs arithmétiques addition + a = a+b ; x= 7 + a soustraction - a= a-b ; y= c-13 moins unitaire - a = -b multiplication * a = a * a ; b = y * 9 division / c = 8 / b ; d = a / b Reste de la division entière (modulo) % r = a % b Type Symbole Exemple Opérateurs logiques de comparaison => Le résultat de la comparaison peut prendre deux valeurs vrai ou faux ET logique && c = a $$ b // c est vrai si a et b sont vrais, sinon c est faux OU logique || c = a || b // c = 1 si a ou b sont non nuls, sinon c=0 Non logique ! c = !c ; a=!b // c prend le complément de ce qu’il valait Opérateurs de comparaison => Le résultat de la comparaison peut prendre deux valeurs vrai ou faux égalité == if a==b ; if c==9 différent != if c!=a supérieur > if a>b ; if 8 >a supérieur ou égal >= if a>=b inférieur < if a>b ; if 8 >a inférieur ou égal <= if a>=b Opérateurs binaires de comparaison bit à bit 28 => Le résultat de la comparaison peut prendre deux valeurs vrai ou faux ET binaire & x = a $ b // c est vrai bit à bit si bit à bit a et b sont vrais OU binaire | x= a | b // c est vrai bit à bit si bit à bit a ou b sont vrais OU exclusif binaire ^ x = a ^ b // c est vrai bit à bit si bit à bit a ou exclu b sont vrais complément à 1 ~ a = ~ b décalage de n bits à droite >> x = y >> n // y = x décalé de n bits à droite décalage de n bits à gauche << x = y << n // y = x décalé de n bits à gauche Exemples (a et b deux entiers) tel que : a = 1100 0111 0101 0011 (0xC753) b = 0001 1001 1010 1110 (0x19AE) a & b = 0000 0001 0000 0010 (0x0102) a | b = 1101 1111 1111 1111 (0xDFFF) a ^ b = 1101 1110 1111 1101 (0xDEFD) ~ a = 0011 1000 1010 1100 (0x38AC) ~ b = 1110 0110 0101 0001 (0xE651) a<<2 = 0001 1101 0100 1100 (0x1D4C) 2.4 Les tableaux : 2.4.1 Définition : Un tableau est un ensemble d’éléments de même type désignés par un identificateur unique, chaque élément contenu dans le tableau est repéré par un “indice” précisant sa position au sein de l’ensemble. On peut effectuer différents traitements (consulter, modifier, ajouter …) sur un élément ou l’ensemble des éléments du tableau. Un tableau à une dimension correspond à la notion de vecteur en mathématiques. C’est un tableau d’une seule ligne et plusieurs colonnes. Voici un tableau à 8 éléments : 17 0 33 108 41 13 56 92 Un tableau à deux dimensions est défini par l’intersection du nombre des lignes par celui des colonnes. Un tableau bidimensionnel correspond à la notion de matrice en mathématiques. Voici une matrice de 3*3 éléments : (3 lignes et 3 colonnes) 19 22 31 90 47 26,8 15 0 74 6 … 29 2.4.2 Tableau à une dimension Tableau à une dimension Déclaration : L’utilisation de la notion de vecteur en algorithmique ou en C nécessite une déclaration auparavant Syntaxe algorithmique : nomtableau : Tableau [tailletab] <typeéléments> Exemples : tab0 : tableau [0..19] entier => tableau de 20 entier tab1 : tableau [20] réel => tableau de 20 éléments réels tab2 : tableau [] entier = [1,2,3,4,5] => tableau de 5 entiers initialisé tab3 : tableau [10] entier = [1,2,3,4,5]; => tableau de 10 entier initialisé type Tab tableau[24] entier => déclaration d’un type tableau de 24 entiers tab4 : Tab => tab4 est un tableau de 24 entiers => Ces deux dernières écritures permettent d’éviter l’écriture de la même déclaration pour des tableaux de même type et de mêmes structures Syntaxe dans le langage C : <typeélément> nomtableau[tailletab] ; Exemples : int tab1[20]; /* tableau de 20 entiers non initialisé */ tab2 = {1,2,3,4,5}; /* tableau de 5 entiers même si le type n’a pas été spécifié */ int tab3[] = {1,2,3,4,5}; /* tableau de 5 entiers même si la taille n’a pas été spécifiée*/ float tab4[20]= {10,2,47,9,5}; /* tableau de 20 réels partiellement initialisé */ typedef int Tab[5]; /* déclaration d’un type tableau Tab*/ Tab tab5; /*tab5 est un tableau de 5 éléments entier*/ Tab tab6= {1,2,3,4,5}; /*tab5 est un tableau de 5 éléments entier initialisé*/ Char alphabet[12] ; /*déclaration d’une chaîne de caractère de 12 caractère maximum*/ Accès : En algorithmique ou en C, pour accéder à un élément du tableau, uploads/Management/ pic-leconn02e.pdf
Tags
Managementtableau ---------------------------------------------------------- programme langage valeurDocuments similaires
-
24
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jul 23, 2022
- Catégorie Management
- Langue French
- Taille du fichier 1.4691MB