Home
PIC en C_expressions
Contents
1. 0 Puis la patte RAO est mise 1 et a est augment d une unit a est alors compar 210 Si a lt 210 les actions entre crochets s effectuent nouveau Au moment o a 210 les actions entre crochets ne s effectuent plus la suite du programme peut se r aliser gt La patte RAO est alors mise nouveau 0 YVVYNVYN Remarque gt La boucle s effectue 211 fois je vous laisse r fl chir pourquoi gt Nous venons tr s simplement de r aliser une temporisation qui met 1 la patte RAO pendant un certain temps Exemple Le microcontr leur observe si les boutons poussoirs 1 2 et 3 sont actionn s Lorsque l on active le bouton poussoir 4 l tat des leds est mis jour comme suit La led 1 s allume si le bouton poussoir 1 a t actionn La led 2 s allume si le bouton poussoir 2 a t actionn La led 3 s allume si le bouton poussoir 3 a t actionn Les boutons poussoirs ne seront observ s nouveau que lorsque inter4 est rel ch V V VVoV V Page 16 20 La programmation des PIC en C Les expressions les alternatives les it rations 1 Attention de respecter les majuscules et minuscules char sortie PORTB bit inter1 RAO bit inter2 RA1 bit inter3 RA4 bit inter4 RB5 bit led1 RBO bit led2 RB1 bit led3 RB2 bit led4 RB3 Il Variables generaleS char etat_inters Il Fonc
2. incr mentation incr mentation ou d cr mentation de variable Explications gt L action ou les actions entre crochets se r p tent de l affectation d but tant que comparaison est vraie chaque boucle incr mentation se r alise Application th orique simple Char a for a 3 a lt 10 a RAO RAO RA1 IRA1 Explications sur l application gt Une variable a est cr e pour r aliser une boucle for gt En entrant dans la boucle la variable a est mise 3 gt Puis la condition a lt 10 est valu e Celle ci est vraie puisque a 3 les actions entre crochets peuvent se r aliser Ces actions inversent le niveau logique des pattes RAO et RA1 Lors de chaque fin de r alisation des actions de la boucle a est incr ment d une unit La condition a lt 10 est nouveau valu e et le cycle recommence A force d incr menter a la comparaison a lt 10 deviendra fausse la boucle sera alors termin e la suite du programme pourra s ex cuter V VVV Remarques gt La boucle s effectue 7 fois je vous laisse r fl chir pourquoi gt L criture en C est tr s souple Il est alors possible d omettre une ou plusieurs conditions for a lt 10 a a est affect avant l entr e dans la boucle for a 3 a lt 10 a doit tre mis jour dans la boucle for a lt 10 le for ne ma trise que la condition de boucle for aucune condition donc boucle infinie gt La bo
3. a 10 b a lb 10 gt I Compl mentation logique Compl mente une variable de type bit Exemple bit a b a 1 b 1 b 0 gt Compl mentation un Inverse tous les bits de l op rande Exemple char a b a 5 a 0000 0101 soit 5 b a b 1111 1010 soit 255 5 Symbole repr sentant une op ration Ex Entit sur laquelle porte l op ration Cette entit peut tre fausse si elle est gale 0 vraie dans les autres cas Page 7 20 La programmation des PIC en C Les expressions les alternatives les it rations Incr mentation Ajoute 1 l op rande Exemples a 14 a II apr s ex cution a 15 c a II pr incr mentation a a 1 puis c a II apr s ex cution c 16 Attention l instruction ci dessous est impossible avec le compilateur CC5X d b II post incr mentation d b puis b b 1 gt D cr mentation Retranche 1 l op rande Exemples a 14 a a a II pr d cr mentation a a 1 puis c a II apr s ex cution c 12 Attention l instruction ci dessous est impossible avec le compilateur CC5X d b II post d cr mentation d b puis b b 1 Ill Les op rations binaires Elles admettent plusieurs op randes gt Addition Effectue la somme alg brique des op randes Exemple a b 3 Il a contient la somme de b et de 3 gt Soustraction Effectue la diff rence des op ra
4. RBO bit led2 RB1 bit led3 RB2 bit led4 RB3 Il Fonction principale void main void sortie 0 II initialisation des pattes du microcontroleur TRISB 0b11110000 for La suite du programme s effectue en boucle if inter1 1 Il Si inter1 1 alors allumer led1 led1 1 led2 0 led3 0 led4 0 if inter2 Il Si inter2 1 alors allumer led2 sortie 0 led2 1 Page 11 20 La programmation des PIC en C Les expressions les alternatives les it rations if inter3 sortie 0xff Si inter3 1 alors tout allumer if inter4 sortie 0 Si inter4 1 alors tout teindre Explications gt La v rification de l tat d un bit peut se faire de deux mani res La comparaison inter1 1 La validation inter2 sous entendu si inter2 est vrai gt Les deux premiers if sont crits de fa on diff rente la deuxi me criture est pr f rable car elle occupe moins de place en m moire gt Pour mettre toutes les leds 1 il est n cessaire d crire OxFF sur la sortie Je rappelle que seuls les bits connect s en sortie sont affect s par cette instruction L alternative multiple le switch Le probl me de l exemple ci dessus se dessine lorsque l on appuie sur plusieurs boutons poussoirs la fois Il serait aussi peut tre utile de r aliser une action lorsque aucun des if n est effectu Une solution ces probl mes s appelle
5. l alternative multiple switch variable case constantel action1 action2 break case constante2 actiona actionb break default actionx actiony break Explications gt Si variable constante1 action 1 et 2 sont effectu es gt Le break sert sortir du switch donc ne pas effectuer les autres cas Attention en l absence de break toutes les actions du switch s effectuent partir du cas actif gt default indique les actions effectuer si aucun des cas ne s est produit Remarques gt l est possible de faire la m me chose que le switch avec des if Int r t du switch sur le if gt Le principal int r t du switch est de d terminer un point d entr e dans une s rie d op rations Il ne faut pas alors utiliser les break gt Sous CC5X le code produit avec le switch est plus compact qu avec les if imbriqu s L exemple suivant illustre l utilisation du switch Le bouton poussoir 1 allume la led 1 et teint les autres Le bouton poussoir 2 allume la led 2 et teint les autres Le bouton poussoir 3 allume toutes les leds Le bouton poussoir 4 teint toutes les leds Dans le cas o aucun ou plusieurs interrupteurs sont actionn s rien ne se produit VNYNYNN Page 12 20 La programmation des PIC en C Les expressions les alternatives les it rations 1 Attention de respecter les majuscules et minuscules char sortie PORTB bit inter1 RAO bit inter2 RA1 bit
6. sur le NET Aujourd hui d velopper une application avec un PIC n a rien d extraordinaire et tous les outils n cessaires sont disponibles gratuitement Voici l ensemble des mat riels qui me semblent les mieux adapt s Ensemble de d veloppement diteur compilateur simulateur MPLAB de MICROCHIP http www microchip com Logiciel de programmation des composants IC PROG de Bonny Gijzen http www ic prog com Programmateur de composants PROPIC2 d Octavio Noguera voir notre site http electronique facile com Pour la programmation en assembleur beaucoup de routines sont d j crites des didacticiels tr s complets et gratuits sont disponibles comme par exemple les cours de BIGONOFF dont le site est l adresse suivante http abcelectronique com bigonoff Les fonctions que nous demandons de r aliser nos PIC sont de plus en plus complexes les programmes pour les r aliser demandent de plus en plus de m moires L utilisateur est ainsi la recherche de langages volu s pouvant simplifier la t che de programmation Depuis l ouverture du site http electronique facile com le nombre de questions sur la programmation des PIC en C est en constante augmentation ll est vrai que rien n est aujourd hui disponible en fran ais Mon exp rience dans le domaine de la programmation en C due en partie mon m tier d enseignant et ma passion pour les PIC m a naturellement amen l criture de ce didacticiel Celui ci s
7. 00 0111 soitc 7 gt A U exclusif binaire Effectue un OU exclusif bit bit entre les op randes Exemple a 5 I a 0000 0101 b 6 b 0000 0110 c ab I c 0000 0011 soit c 3 gt lt lt D calage de bits gauche D cale vers la gauche tous les bits du 1 op rande Le nombre de d calages est donn par le 2 op rande Exemple a 11 I a 0000 1011 soit a Oxb b a lt lt 3 b 0101 1000 soit b 0x58 gt gt gt D calage de bits droite D cale vers la droite tous les bits du 1 op rande Le nombre de d calages est donn par le 2 op rande Exemple a 11 lla 0000 1011 b a gt gt 3 b 0000 0001 soit b 1 IV Les auto affectations C est une criture condens e li e une op ration binaire et une affectation Si l on crit a a b l criture de a intervient 2 fois ce qui est inutile On pourra crire a b d abord a b ensuite a a b Exemples a 1 lla a 1 Affectation somme b 2 llb b 2 Affectation diff rence c 3 llc c 2 Affectation produit d 4 llda d 4 Affectation division e 5 lle e 5 Affectation modulo f amp 6 IIf f amp 6 Affectation et g 7 llg 9 7 Affectation ou A 8 llh h 8 Affectation ou exclusif lt lt 9 lli i lt lt 9 Affectation d calage gauche j gt gt 10 lIlj j gt gt 10 Affectation d calage droite Page 9 20 La programmation des PIC en C Les expressions les alternatives les it rations V Les
8. L alternative simple et complete le if L alternative permet de faire un choix de r alisation d action Il existe deux types d alternatives Alternative simple si la condition est vraie alors faire une action Alternative compl te si la condition est vraie alors faire une action sinon faire une autre action A la fin de la r alisation de l alternative la suite du programme s ex cute En C l alternative simple s crit comme suit If condition action Dans le cas de plusieurs actions r aliser If condition action1 action2 En C l alternative compl te s crit comme suit If condition action1 else action2 Dans le cas de plusieurs actions r aliser If condition action1 action2 else actiona actionb La condition peut tre une succession de conditions simples Si la condition est trop compliqu un message vous avertira ex if a 3 88 b 5 c 2 L exemple ci dessous permettra de clarifier l utilisation du if gt Le bouton poussoir 1 allume la led 1 et teint les autres gt Le bouton poussoir 2 allume la led 2 et teint les autres gt Le bouton poussoir 3 allume toutes les leds gt Le bouton poussoir 4 teint toutes les leds 1 Attention de respecter les majuscules et minuscules Il E S char sortie PORTB bit inter1 RAO bit inter2 RA1 bit inter3 RA4 bit inter4 RB5 bit led1
9. La programmation des PIC en C Les expressions les alternatives les it rations R alisation HOLLARD Herv http electronique facile com Date 26 aout 2004 R vision 1 4 La programmation des PIC en C Les expressions les alternatives les it rations Sommaire SOMMAS 0 A e 2 res Ms A A A ET 3 Structure de ce OCUIME Es sn dd en an en in ennn nnne En 4 Le mat riel NECESA iii A A AA el EEEE R Re 4 LA Dane AAA eee ere einem SR ME Cet Rte El 4 But a At eNd td 5 Ces Vara ains dz td ATA ATAR AA EAT ATREA ERA LATA DAA ERA AR 5 Les EXPTES SIS a DI EDU NP EN NP ER a PU LEE 7 HAS AMECA A A At E nn 7 lX Eesop rations UnaileS tala 7 Ill Les op rations binaires 00 A A AE ad id 8 IV Les auto affectations s diments AAA AA 9 VALES comparaisons sn n e EI AA e A 10 L alternative simple et compl te le if ini beiibeeens 11 L alternative multiple le switch 12 L it ration 0 N le while aca rederede deeida 14 bit rationdaN ledo While eo 16 L it ration avec variable de contr le le for 18 Pour quelques neurones de plus ss 20 CONCISO ser A ATA RA AL 20 Page 2 20 La programmation des PIC en C Les expressions les alternatives les it rations Introduction Les microcontr leurs PIC de la soci t Microchip sont depuis quelques ann es dans le hit parade des meilleures ventes Ceci est en partie d leur prix tr s bas leur simplicit de programmation les outils de d veloppement que l on trouve
10. ations L it ration 0 N le while L it ration 0 N permet de ne pas faire ou de r p ter une ou plusieurs actions en fonction d une condition En C cette it ration s crit while condition action ou while condition action1 action2 Explication sur le while gt Tant que la condition est vraie l action ou les actions entre crochets sont r alis es gt Si la condition est fausse la ou les actions ne sont pas r alis es la suite du programme s effectue gt Si la condition est fausse lors de sa premi re valuation les actions ne seront jamais r alis es gt Il faut se souvenir que la condition est valu e avant de commencer la boucle Application th orique simple a 0 While a lt 210 RAO 1 a RAO 0 Explications sur l application gt Au d but une variable appel a est mise 0 gt La boucle s effectue tant que a lt 210 ce qui est le cas au d but puisque a 0 gt La boucle met la patte RAO 1 et augmente a d une unit gt Lorsque a 210 la boucle ne s effectue plus la patte RAO est mise nouveau 0 Remarques gt La boucle s effectue 210 fois je vous laisse r fl chir pourquoi gt Nous venons tr s simplement de r aliser une temporisation qui met 1 la patte RAO pendant un certain temps Quelques id es d utilisation gt Le while peut servir d autorisation d interdiction de fonctionnements en boucle gt ll est pratique pour r aliser des actions tou
11. comparaisons gt Egalit Renvoie vrai si les op randes sont gaux et faux s ils sont diff rents Exemple if a 2 b 1 Ib vaut 1 sia 2 l instruction if sera abord e plus loin gt I Non galit Renvoie vrai si les op randes sont diff rents et faux s ils sont gaux Exemple if a 2 b 0 b vaut O si a diff rent de 2 l instruction if sera abord e plus loin gt gt Plus grand que Renvoie vrai si le 1 op rande est sup rieur au 2 sinon faux Exemple a 10 gt 20 lla 0 gt lt Plus petit que Renvoie vrai si le 1 op rande est inf rieur au 2 sinon faux Exemple a 10 lt 20 lla 1 gt gt Plus grand que ou gal Renvoie vrai si le 1 op rande est sup rieur ou gal au 2 sinon faux Exemple if b gt 2 a 1 ll a vaut 1 si b est sup rieur ou gal 2 l instruction if sera abord e plus loin gt lt Plus petit que ou gal Renvoie vrai si le 1 op rande est inf rieur ou gal au 2 sinon faux Exemple _if a lt 2 b 1 b vaut 1 si a est inf rieur ou gal 2 l instruction if sera abord e plus loin Attention ll est tr s difficile avec CC5X d utiliser une comparaison dans une affectation L instruction suivante est correcte mais ne fonctionne pas sous CC5X b a 2 L instruction suivante fonctionne sous CC5X a 10 lt 20 lla 1 Page 10 20 La programmation des PIC en C Les expressions les alternatives les it rations
12. de 22pF 4 leds rouges 4 r sistances de 470 ohms 4 interrupteurs 4 r sistances de 10 Kohms Une platine d essai sous 5 volts La platine d essai Pour tester les programmes propos s il est possible utiliser le simulateur comme pr sent dans le premier manuel programmer un composant et tester physiquement la r alisation utiliser un mulateur 1 Nous utiliserons dans ce didacticiel le test physique S1 S2 s3 S4 Il est ainsi n cessaire de r aliser sur une platine de type LAB par exemple le montage ci contre OSC1 CLKIN OSC2 CLKOUT NZ D2 XL D3 Z LED3 PIC16C84 Page 4 20 La programmation des PIC en C Les expressions les alternatives les it rations But atteindre Ce didacticiel vous permettra de faire des choix des boucles ainsi que d utiliser les principales expressions du C Vous apprendrez aussi utiliser les variables afin de vous servir de la m moire du microcontr leur Pour atteindre ces buts nous allons r aliser un programme de gestion d clairage constitu de 4 boutons poussoirs et de 4 leds Voir page 4 Chaque bouton poussoir pourra r aliser des actions d termin es sur les leds Les variables Une variable est une portion r serv e de la m moire RAM laquelle on a donn un nom Elle est utilis e afin de garder en m moire une entit acquise dans le temps pour la r utiliser plus tard Toute variable en C poss de un type Pour la suite de ce didacticiel
13. e veut accessible tous ceux qui poss dent une petite exp rience informatique et lectronique utilisation de Windows connaissances minimales sur les notions suivantes la tension le courant les r sistances les LEDs les quartz l criture sous forme binaire et hexad cimale Ce troisi me fascicule vous permettra enfin de r aliser vos premier programmes Vous serez capable de rendre vos applications intelligentes si celle ci ne demande pas de gestion du temps ou de calculs complexes Page 3 20 La programmation des PIC en C Les expressions les alternatives les it rations Structure de ce document Ce document est compos de chapitres Chaque chapitre d pend des pr c dents Si vous n avez pas de notion de programmation vous devez r aliser chaque page pour progresser rapidement Le type gras sert faire ressortir les termes importants Vous trouverez la d finition de chaque terme nouveau en bas de la page o appara t pour la premi re fois ce terme Le terme est alors en italique La couleur bleue est utilis e pour vous indiquer que ce texte est taper exactement sous cette forme La couleur rouge indique des commandes informatiques utiliser Le mat riel n cessaire Les deux logiciels utilis s lors du premier fascicule Un programmateur de PIC comprenant un logiciel et une carte de programmation Vous trouverez tout ceci sur notre site Un PIC 16F84 un quartz de 4MHz deux condensateurs
14. g rer le temps La gestion du temps est th oriquement assez facile comprendre mais dans la pratique plut t complexe cause de l ventail des possibilit s offertes par les microcontr leurs dans ce domaine Je conseille donc de passer la suite de ces cours que si vous poss dez parfaitement les diff rentes notions vues jusqu ici Page 20 20
15. inter3 RA4 bit inter4 RB5 bit led1 RBO bit led2 RB1 bit led3 RB2 bit led4 RB3 Il Variables generaleS char etat_inters Il Fonction principale void main void sortie 0 1 initialisation des pattes du microcontroleur TRISB 0b11110000 etat_inters 0 for 4 1 La suite du programme s effectue en boucle etat_inters O inter1 Mise de l etat des inter dans la variable etat_inters etat_inters 1 inter2 etat_inters 2 inter3 etat_inters 3 inter4 switch etat_inters case 1 lJaction sur inter1 uniquement sortie 0 led1 1 break case 2 I action sur inter2 uniquement sortie 0 led2 1 break case 4 II action sur inter3 uniquement sortie 0xff break case 8 II action sur inter4 uniquement sortie 0 break Explication gt d s le d but de la boucle infinie les tats des 4 interrupteurs sont mis dans la variable tat_inters gt Siinter1 est actif etat_inters 1 led1 s allume gt Siinter2 est actif etat_inters 2 led2 s allume gt Si inter3 est actif etat_inters 4 toutes les leds s allument gt Si inter4 est actif etat_inters 8 toutes les leds s teignent gt Si aucun ou plusieurs inters sont actifs rien n est modifi car il n y a pas d instruction default Page 13 20 La programmation des PIC en C Les expressions les alternatives les it r
16. le 2 1 Attention de respecter les majuscules et minuscules char sortie Y PORTB bit inter1 RAO bit inter2 RA1 bit inter3 RA4 bit inter4 RB5 bit led1 RBO bit led2 RB1 bit led3 RB2 bit led4 RB3 void main void sortie 0 I Initialisation des pattes du microcontroleur TRISB 0b11110000 for La suite du programme s effectue en boucle led1 interi led2 inter2 led3 inter3 led4 interd Page 6 20 La programmation des PIC en C Les expressions les alternatives les it rations Les expressions Ce chapitre est tir de l aide au langage C du logiciel DevPic84C Les expressions en C vont nous permettre de r aliser des op rations entre plusieurs entit s Une expression est compos e d un op rateur et de un ou plusieurs op randes Nous allons distinguer 5 types d expressions les affectations Il les op rations unaires __Il les op rateurs binaires V les auto affectations V les comparaisons I Les affectations gt Affectation Place la valeur du 2 op rande dans le 1 Le premier op rande ne peut pas tre une constante Exemple a 5 II place la valeur 5 dans a Il Les op rations unaires Elles n admettent qu un seul op rande gt S lection d un bit le point Fait r f rence un bit de l op rande Exemple PORTA2 1 met RA2 1 gt N gation Change le signe de l op rande Exemple
17. ndes Exemple a b 3 a contient la diff rence de b et de 3 gt Multiplication Effectue le produit des op randes Exemple a b 3 a contient 3 fois la valeur de b gt Division Effectue le quotient des op randes Exemple a b 3 a contient le tiers de b En g n ral si a est un entier 3 a ne redonnera pas b gt Modulo Renvoie le reste de la division enti re des op randes Exemple a 7 3 Ha 7 3 2 soit1 gt 88 ET logique Renvoie vrai si les 2 op randes sont vrais et faux dans les 3 autres cas Exemple if a88 b c 1 c 1 si a et b sont vrais sinon c 0 l instruction if sera abord e plus loin Attention sous CC5x il n est pas possible d utiliser le ET logique dans une affectation gt 8 ET binaire Effectue un ET logique bit bit entre les op randes Exemple a 5 lla 0000 0101 b 6 Ib 0000 0110 c a amp b 11 c 0000 0100 soit c 4 Page 8 20 La programmation des PIC en C Les expressions les alternatives les it rations gt J OU logique Renvoie 1 si 1 ou 2 op randes sont vrais et 0 dans l autre cas Exemple if a b c 1 Ilc 1 sia ou b sont non nuls sinonc 0 l instruction if sera abord e plus loin Attention sous CC5Bx il n est pas possible d utiliser le OU logique dans une affectation gt OU binaire Effectue un O logique bit bit entre les op randes Exemple a 5 I a 0000 0101 b 6 II b 0000 0110 c alb II c 00
18. nous n utiliserons que deux types de variables le char et le bit gt Le type char occupe un octet en m moire Nous pouvons d poser dans cette variable un nombre entre O et 255 gt Le type bit occupe un bit en m moire Nous pouvons d poser dans cette variable un 0 ou un 1 logique La d claration d une variable se fait de deux fa ons gt type nom adresse de la portion_reserv gt type nom le compilateur r serve une portion encore libre La place de la d claration des variables dans le programme est importante Pour ce didacticiel nous utiliserons des variables permanentes leur place est r serv e durant tout le programme nous les d clarerons au d but du fichier Il est important de conna tre la place des variables dans la m moire pour les visualiser lors de la simulation ll est aussi indispensable de ne pas cr er plus de variables que de m moire disponible Pour cela lors de la compilation une table r capitulative de l tat de la m moire RAM est affich e Voici un petit programme qui ne fait rien mais sert uniquement comprendre le processus 1 Attention de respecter les majuscules et minuscules Il declaration des variableS char a 0x11 II reservation d un octet nomme a l adresse 0x11 bit b 0x12 2 II reservation d un bit nomme b la place 2 de l octet 0x012 char c d II reservation de deux octets nommes c et d bit e II re
19. ramme s effectue si inter4 est actionne etat_inters O inter1 Mise de l etat des inter dans la variable etat_inters etat_inters 1 inter2 etat_inters 2 inter3 switch etat_inters case 1 lJaction sur inter1 uniquement sortie 0 led1 1 led2 1 break case 2 1 action sur inter2 uniquement sortie 0 led3 1 led4 1 break case 4 II action sur inter3 uniquement sortie 0 break Explications gt Les fonctions r alis es par les boutons poussoirs 1 2 et 3 ne peuvent se faire que lorsque inter4 est actionn gt Nous utiliserons une it ration 0 N dans laquelle nous placerons les fonctions des 3 premiers boutons poussoirs La condition de r alisation de l it ration sera le bouton poussoir 4 activ Page 15 20 La programmation des PIC en C Les expressions les alternatives les it rations L it ration 1 N le do while L it ration 1 N permet de r p ter au moins une fois une ou plusieurs actions en fonction d une condition En C cette it ration s crit do action while condition ou do action1 action2 while condition Explications gt L action ou les actions entre crochets sont r alis es tant que la condition est vraie gt L valuation de la condition se fait apr s r alisation de ou des actions Application th orique simple a 0 do RAO 1 a While a lt 210 RAO 0 Explications sur l application Au d but une variable appel a est mise
20. servation d un bit nomme e Il Fonction principale void main void nop instruction qui ne fait rien Page 5 20 La programmation des PIC en C Les expressions les alternatives les it rations Taper ce programme le compiler Les messages d information de la compilation nous informe de l tat de la RAM nous allons tudier ces messages RAM D0h 7 7EXEEE KEEKEEKE RAM 20h AHHH KEHEKEHE EEE ERREUR RAM 40h xxxxxxxx HEHHEHE RAM usage 5 bytes 0 local 63 bytes free Explication des lignes 1 2 et 3 Chaque symbole repr sente l tat d un octet La premi re ligne par exemple r capitule l tat des octets OOh 19h le h signifie que nous parlons en hexad cimal gt gt V V V 7 Octet r serv par le compilateur pour le fonctionnement du microcontr leur registre PORTA TRISB ou par l utilisateur une place pr cise 0X11 Octet r serv par l utilisateur mais dont la place n a pas d importance variable c et d Octet o 7 bits sont disponibles Octet libre La ligne 4 r capitule l tat de la RAM Il est possible de modifier l exemple final du fascicule pr c dent en modifiant les define par des variables En effet les entr es et les sorties sont repr sent es par deux octets registres de la m moire PORTA et PORTB Le programme suivant est identique celui du fascicu
21. t en attendant un v nement gt Il peut servir aussi attendre qu une entr e ait un tat d termin pour effectuer la suite du programme Il faut a ce moment ne pas mettre d action action while RBO llattente que RBO passe 1 action2 action1 se r alise Pour que action se r alise il faut attendre que RBO passe 1 L exemple suivant va nous permettre de comprendre l utilit de l it ration 0 N Le bouton poussoir 1 allume les leds 1 et 2 et teint les deux autres Le bouton poussoir 2 allume les leds 3 et 4 et teint les deux autres Le bouton poussoir 3 teint toutes les leds Dans le cas o aucun ou plusieurs interrupteurs sont actionn s rien ne se produit Le bouton poussoir 4 permet le fonctionnement ci dessus lorsqu il est actionn V VVVoV Page 14 20 La programmation des PIC en C Les expressions les alternatives les it rations 1 Attention de respecter les majuscules et minuscules fee ES char sortie PORTB bit inter1 RAO bit inter2 RA1 bit inter3 RA4 bit inter4 RB5 bit led1 RBO bit led2 RB1 bit led3 RB2 bit led4 RB3 Il Variables generaleS char etat_inters Il Fonction principale void main void sortie 0 Initialisation des pattes du microcontroleur TRISB 0b11110000 etat_inters 0 For while inter4 La suite du prog
22. tion principale void main void sortie 0 1 initialisation des pattes du microcontroleur TRISB 0b11110000 etat_inters 0 for do 1 boucle de memorisation d actions sur les boutons poussoirs 1 2 et 3 if inter1 etat_inters 0 1 if inter2 etat_inters 1 1 if inter3 etat_inters 2 1 while inter4 led1 etat_inters 0 1 mise a jour des leds led2 etat_inters 1 led3 etat_inters 2 etat_inters 0 while inter4 attente que l on relache inter4 Explications gt Les actions sur les boutons poussoirs 1 2 et 3 sont m moris es tant que l on n actionne pas inter4 gt Inter4 pas actionn s crit linter4 gt Une action sur inter4 stoppe la boucle et met jour les leds gt Pour attendre que l on rel che inter4 il suffit de faire une boucle while sans action Page 17 20 La programmation des PIC en C Les expressions les alternatives les it rations L it ration avec variable de contr le le for Le for permet de faire une boucle contr l e gr ce une variable et des conditions d but de boucle condition de r alisation de boucle incr mentation En C cette it ration s crit For d but comparaison incr mentation action For d but comparaison incr mentation action1 action2 avec gt d but instruction d affectation selon une criture valide gt comparaison instruction de comparaison selon une criture valide gt
23. ucle suivante ne fait aucune action elle permet de perdre du temps for a 0 a lt 250 a Exemple gt Le microcontr leur observe si les boutons poussoirs 1 2 et 3 et 4 sont actionn s gt Lorsque 3 boutons poussoirs ont t s actionn s m me plusieurs fois l affichage se met jour comme suit La led 1 s allume si le bouton poussoir 1 a t actionn La led 2 s allume si le bouton poussoir 2 a t actionn La led 3 s allume si le bouton poussoir 3 a t actionn La led 4 s allume si le bouton poussoir 4 a t actionn Page 18 20 La programmation des PIC en C Les expressions les alternatives les it rations char etat_inters char action Il Fonction principale void main void sortie 0 I initialisation des pattes du microcontroleur TRISB 0b11110000 etat_inters 0 for for action 1 action lt 4 boucle de memorisation d actions sur les boutons poussoirs if inter1 amp amp etat_inters 0 0 etat_inters 0 1 action if inter2 amp amp etat_inters 1 0 etat_inters 1 1 action if inter3 amp amp etat_inters 2 0 etat_inters 2 1 action if inter4 amp amp etat_inters 3 0 etat_inters 3 1 action led1 etat_inters 0 1 mise a jour des leds led2 etat_inters 1 led3 etat_inters 2 led4 etat_inters 3 etat_inters 0 Explications gt Dans la boucle for la premi re action sur chaque bo
24. uton poussoir est m moris e dans tat_inters et une variable action est incr ment e lorsque 3 boutons poussoirs ont t s actionn s on sort de la boucle les leds sont mises jour Page 19 20 La programmation des PIC en C Les expressions les alternatives les it rations Pour quelques neurones de plus Nous venons de voir les principales structures du langage C Il en existe encore beaucoup Pour d velopper un programme en C destin un microprocesseur ce que nous venons d apprendre suffit largement Si vous voulez approfondir le sujet je vous conseille de travailler les structures suivantes gr ce au manuel d utilisation de CC5X break continue return goto Ces structures permettent de rendre encore plus souple l utilisation des alternatives et des it rations Ces structures peuvent tre d un grand secours dans des programmes complexes pour g rer les erreurs les cas non pris en compte par le programme on appelle souvent ces probl mes des exceptions Conclusion Avec ce troisi me fascicule vous tes enfin autonome pour crire vos premiers programmes Le niveau de connaissances que vous poss dez est largement suffisant pour la plupart des applications o la gestion du temps n a pas d importance Maintenant seule l exp rience fera la diff rence Prenez le temps de lire des programmes de vous casser les dents sur vos propres r alisations Avec le quatri me didacticiel vous serez capable de
Download Pdf Manuals
Related Search
Related Contents
Sony VAIO VPCP113KX 専用応募用紙 - Aprica User Guide - v3.6r1 DSP56xxx Toolchain C Compiler PRS-650 Betriebsanleitung HVM100 Manual - PC Environmental Ltd 三重県防災行政無線設備保守点検業務委託特記仕様書 Édition spéciale - Centre Hospitalier Métropole Savoie Samsung UA32D4003BW دليل المستخدم Copyright © All rights reserved.
Failed to retrieve file