Академический Документы
Профессиональный Документы
Культура Документы
2 Notice d'utilisation
Prambule :
Flowcode est un logiciel de programmation graphique permettant, partir de la saisie d'algorigrammes, de crer des programmes pour les microcontrleurs de la famille des PICmicro de Microchip. Une fois lalgorigramme labor, Flowcode permet de simuler et visualiser le comportement du programme en dcoulant, avant de le traduire en langage C, de le compiler en hexadcimal et de le transfrer dans le microcontrleur cible.
Sommaire :
Prsentation du logiciel Cration d'un programme Les icnes de COMMANDE Ajouter une ICNE Proprits de licne ENTRE Proprits de licne SORTIE Proprits de licne PAUSE Proprits de licne DCISION (alternative) Proprits de licne POINT DE JONCTION Proprits de licne BOUCLE (itration) Proprits de licne MACRO Proprits de licne CALCUL Proprits de licne MANIPULATION DE CARACTRES Proprits de licne INTERRUPTION Proprits de licne CODE C Proprits de licne COMMENTAIRE Les icnes de COMPOSANTS et le PANNEAU de simulation Proprits des composants SWITCH et SWITCHbank (commutateur(s)) Proprits des composants LED et LEDarray (LED simple ou en matrice) Proprits des composants led7seg et led7seg4 (afficheur(s) 7 segments) Proprits du composant LCDDisplay (afficheur LCD) Proprits du composant ADC (convertisseur analogique/numrique) Proprits du composant PWM (modulateur de largeur d'impulsion) La SIMULATION La COMPILATION et le TRANSFERT d'un programme vers un PICmicro Page 2 Page 3 Page 4 Page 4 Page 5 Page 6 Page 7 Page 8 Page 9 Page 10 Page 11 Page 12 Pages 13, 14 Pages 15, 16 Page 17 Page 17 Page 18 Page 19 Page 20 Page 21 Page 22 Page 23 Page 24 Page 25 Page 26
1/27
Nota : Les symboles d'algorigrammes utiliss par Flowcode sont conformes la norme internationale ISO 5807 (*), trs proche de la norme franaise NF Z 61-100. La diffrence principale se situe au niveau des itrations (boucles rptitives) pour lesquelles la norme ISO utilise un symbole spcifique alors que la norme NF utilise le symbole de dcision (alternative). Flowcode effectue une 1re compilation de l'algorigramme en langage C, puis en assembleur, puis en langage machine. Ce passage par le langage C tranparat dans la mise en uvre de certaines fonctionnalits du logiciel.
2. Prciser la vitesse dhorloge (frquence) du microcontrleur dans la boite de dialogue "Options Projet" du menu "Edition" afin que les rglages de temporisations ou d'interruption par timer soient prcis. Spcifier galement la vitesse de simulation (1000 prfrentiellement). Note : Si le circuit cible est un ECIO la frquence d'horloge est verrouille sur 48MHz.
3. tablir la liste des variables qui seront utilises dans l'algorigramme : menu Edition Variables Flowcode V4 permet 5 types de variables : Octet (nombre non sign 8 bits) Entier (nombre sign 16 bits) virgule flottante (nombre sign 32 bits soit 3.4 x 10^-38 3.4 x 10^+38) Tableau d'octets ou d'entiers une dimension (nombre de cellules entre crochets) Chane de caractres (nombre de caractres entre crochets, 20 par dfaut) 4. Slectionner et faire glisser les icnes de la barre doutils "Commandes" sur la fentre de saisie pour raliser l'algorigramme : la 1re fentre s'appelle "principal" (main), chaque macro (sousprogramme) comporte une fentre de saisie. Note : pour optimiser l'espace, il est prfrable de rendre flottante la fentre du panneau de simulation "Panel" (clic droit sur Panel, slection de "Floating") puis d'ajuster sa taille. 5. Ajouter les priphriques externes ncessaires sur le panneau de simulation "Panel" en cliquant sur les boutons correspondants dans la barre doutils "Composants", diter leurs proprits, spcifier leurs connexions au microcontrleur et appeler/paramtrer les routines correspondant aux priphriques utiliss. 6. Faire excuter la Simulation pour s'assurer que lapplication se comporte conformment au cahier des charges. 7. Transfrer lapplication dans le microcontrleur cible en compilant le programme en C, puis en lassemblant et finalement en produisant et en transfrant le code objet (Flowcode assure automatiquement ces oprations).
3/27
Point d'insertion
4/27
Choisir le Port concern parmi la liste des ports disponibles du microcontrleur programmer.
Entre depuis Bit unique Utiliser cette option pour lire ltat dun seul bit du port. Dans l'exemple ci-contre l'tat du bit 2 du PORT A (porta.2) est transfr dans la variable de type octet BP2. Cet octet n'a donc que 2 valeurs possibles 0 ou 1. Entre depuis Port complet Dcocher Masque. Utiliser cette option pour lire ltat du port en entier et ranger la valeur lue dans la variable choisie. Masque Grce au masquage, il est possible de transfrer seulement certains bits dans une variable. Quand un masque est utilis, seules les valeurs correspondant aux bits du port slectionns sont lues. Dans l'exemple ci-contre la variable de type octet BoutonsPoussoirs ne prend en compte que les bits 0, 1 et 2 du PORT A.
5/27
Ce bouton ouvre la boite de dialogue Variables permettant de slectionner une variable existante ou den crer une nouvelle.
Port Le slectionner depuis la liste des ports disponibles sur le PICmicro programmer Sortie vers Bit unique Utiliser cette option pour crire dans un seul bit du port.
Si une valeur diffrente de zro est crite dans ce bit alors le bit est mis 1, sinon le bit est mis 0.
Sortie vers Port complet Dcocher masque. Utiliser cette option pour crire la valeur ou la variable dans le port entier. Masque Grce au masquage, il est possible d'crire seulement certains bits d'une variable dans un port. Quand un masque est utilis, seules les bits slectionns sont affects par l'opration d'criture. Dans l'exemple ci-contre, seuls les bits 0 4 du PORT B sont mis 1 lors de l'criture de la valeur FF dans le port puisque les bits 5 7 sont masqus.
6/27
L'icne Pause permet d'insrer des temporisations dans votre programme et den ralentir lexcution. Attention : pendant l'excution de ces pauses le processeur est entirement occup et il ne peut donc effectuer d'autres oprations en mode normal, seul le mode "Interruption" peut lui faire excuter des oprations. Nom afficher Le texte qui apparatra en haut et droite de l'icne sur lalgorigramme. Valeur ou variable Pause Ceci correspond la longueur de la pause que vous voulez crer sous en donnant directement la valeur soit en liant la valeur une variable ( temporisation paramtrique) Bouton Variables Ce bouton ouvre la boite de dialogue Variables permettant de slectionner une variable existante ou den crer une nouvelle. Options Microsecondes/Millisecondes/Secondes Les pauses (ou temporisations) peuvent tre exprimes en microsecondes, millisecondes ou secondes. Lorsque la simulation rencontre une pause exprime en secondes, une boite de dialogue apparat montrant le dcompte du temps. Le bouton Annuler de cette fentre de progression permet de poursuivre lexcution de lalgorigramme sans avoir attendre que le temps soit compltement coul. Pour que Flowcode puisse correctement programmer votre PICmicro avec des rglages de temporisations prcis, vous devez prciser la vitesse dhorloge (frquence) de votre PICmicro (boite de dialogue "Options Projet" du menu "Edition").
7/27
Nota : si le test porte sur un bit, comme dans l'exemple, on peut crire Si BP0 pour tester si BP0 actionn ou Si !BP0 pour tester si BP0 relch
Nom afficher : Texte afficher sur lalgorigramme en haut et droite de licne. Si Le losange Dcision teste la condition afin de dterminer dans quelle branche se passera la suite du traitement. Si le rsultat du test vaut 0 ou FAUX, cest la branche 'Non' qui sera droule. Si le rsultat du test vaut un nombre diffrent de 0 ou VRAI alors cest la branche du "Oui" qui sera excute. Les tests peuvent contenir des nombres, des variables et des oprateurs comme : (, ) - Parenthses. =, <> - Egal , Non gal . +, -, *, /, MOD - Addition, Soustraction, Multiplication, Division, Modulo (reste de la division entire). <, <=, >, >= - Plus petit que, Plus petit ou gal , Plus grand que, Plus grand ou gal . >>, << - Dcalage droite, dcalage gauche. NOT (~), AND (&), OR (|), XOR (^) - NON, ET, OU, OU Exclusif (opration bit bit) ! && || - NON, ET, OU (oprations sur octet(s), le rsultat vaut 0 ou 1) Les valeurs numriques peuvent tre crites au format dcimal (type par dfaut), hexadcimal (prcde par 0x) ou binaire (prcd par 0b). Exemples : 255 ou 0xFF ou 0b01010101.
Bouton Variables : Ce bouton ouvre la boite de dialogue Variables permettant de slectionner une variable existante ou den crer une nouvelle.
Inverser Oui et Non Normalement la branche correspondant "Oui" part sur la droite de licne de Dcision et la branche correspondant au 'Non' continue tout droit dans lalgorigramme. Cocher cette option pour inverser les deux branches. Valeurs logiques : Flowcode considre zro comme FAUX et toute autre valeur diffrente de zro comme VRAI.
8/27
Nom afficher Texte afficher sur lalgorigramme en haut et droite de licne. Aller au point de jonction Slectionner le point de jonction auquel vous voulez aller. Cette option nest pas disponible si licne correspond la dfinition dun point de jonction plutt qu un point de saut.
le second est le point de jonction cad le point dans lalgorigramme indiquant quel endroit se rendre. Le point de saut et le point de jonction partagent une lettre de jonction (label) dans ce cas, la lettre 'A'.
Nota :
Plusieurs points de saut peuvent faire rfrence un mme point de jonction.
Important : Le saut inconditionnel "dstructure" l'algorigramme et peut provoquer des dysfonctionnements du systme, il ne faut donc l'employer qu'aprs avoir constat l'impossibilit d'utiliser une autre solution.
9/27
Les icnes Boucle sont utilises pour mettre en uvre des structures itratives (rptitives). Cinq types d'itrations sont ralisables : La boucle "Tant que Faire" (test de la boucle au dbut) (1) La boucle "Faire Tant que " (test de la boucle la fin) (2) La boucle "Rpter Jusqu' " (test de la boucle au dbut) (3) La boucle "Jusqu' Rpter " (test de la boucle la fin) (4) La rptition de boucle un nombre de fois spcifi (de 1 255) (5) Nom afficher Texte afficher sur lalgorigramme en haut et droite de licne. Tant que, Jusqu', Compteur de boucle Slectionner le type de structure itrative. Entrer la condition qui permet de rester dans la boucle (boucle "Tant que") ou de sortir de la boucle (boucle "Rpter") Bouton Variables Ce bouton ouvre la boite de dialogue des variables vous permettant de slectionner une variable existante ou den crer une nouvelle. Tester la boucle : Cette option permet de spcifier si la boucle doit tre teste au dbut ou la fin de la boucle. Cas particulier : Boucle infinie Il arrive quune tche soit rpte linfini (par ex scrutation). Une faon pratique dobtenir ce fonctionnement est dutiliser une boucle infinie. Tester une condition "Toujours Vrai" cad "1" fera que la boucle sera rpte indfiniment (6).
10/27
11/27
Nom afficher Texte afficher sur lalgorigramme en haut et droite de licne. Calculs Une ou plusieurs lignes de calculs peuvent tre entres dans cette boite de dialogue. Tous les calculs doivent comprendre le nom d'une variable existante, le signe gal suivi d'une expression faite de nombre, de variables et des oprateurs suivants : ( ) - Parenthses. = <> - Egal , Non gal . + * / MOD - Addition, Soustraction, Multiplication, Division, Modulo (reste de la division entire). < <= > >= - Plus petit que, plus petit ou gal , Plus grand que, Plus grand ou gal . >> << - Dcalage droite, dcalage gauche. NOT AND (&) OR (|) XOR (^) - NON(inversion), ET, OU, OU Exclusif (oprations bit bit)
&&
||
Les valeurs numriques peuvent tre crites au format dcimal (type par dfaut), hexadcimal (prcde par 0x) ou binaire (prcd par 0b). Exemples : 255 ou 0xFF ou 0b01010101. A partir du moment o les variables ont t pralablement dfinies, toutes les lignes suivantes sont des lignes de calculs parfaitement valides : TEMPO = TEMPO + 1 TEMPO = (MA_VARIABLE + 3) * 3 BITSUIVANT = DERNIERBIT >> 2 AND MASK AETB = PORT_A AND PORT_B Bouton Variables Ce bouton ouvre la boite de dialogue des variables afin de choisir une variable existante ou d'en crer une nouvelle. Fonctions spcifiques (Flowcode PIC seulement) Flowcode inclut un certain nombre de fonctions mathmatiques : float = fadd(float, float) float = fsub(float, float) float = fmul(float, float) float = fdiv(float, float) float = fmod(float, float) byte = isinf(float) byte = isnan(float) byte = float_eq(float, float) byte = float_ge(float, float) byte = float_gt(float, float) byte = float_le(float, float) byte = float_lt(float, float) int = random() - Additionne deux variables de type "virgule flottante" (format sign 32 bits) - Soustrait deux variables de type "virgule flottante" - Multiplie deux variables de type "virgule flottante" - Divise deux variables de type "virgule flottante" - Donne le modulo de deux variables de type "virgule flottante" - Teste si la variables de type "virgule flottante" est infinie - Teste si la variables de type "virgule flottante" n'est pas un nombre - Teste l'galit de deux variables de type "virgule flottante" - Teste si les deux variables de type "virgule flottante" sont suprieures ou gales - Teste si les deux variables de type "virgule flottante" sont strictement suprieures - Teste si les deux variables de type "virgule flottante" sont infrieures ou gales - Teste si les deux variables de type "virgule flottante" sont strictement infrieures - Gnre un nombre alatoire compris entre -32768 et 32767
12/27
On introduit les oprations effectuer sur les chanes de caractres dans la zone de saisie "Fonctions de chane". Les boutons "Variables" et "Fonctions" permettent l'utilisateur d'ajouter des lments dans la zone de saisie. Chanes Les chanes sont des ranges d'octets qui reprsentent des caractres ASCII. Une chane est dfinie par son nom de chane accol son nombre de caractres entre crochets. MyString[24] par exemple est une chane appele MyString et dont la longueur est de 24 caractres. Crer une chane On cre les chanes dans l'cran de Variables au milieu des autres variables. Pour crer une chane, on saisit le nom de la chane et l'on pointe l'option retenue. Pour fixer la longueur de la range, on l'introduit entre crochets. dfaut de spcification, la longueur de la chane sera de 20 caractres.
Changer la longueur de la chane demande d'ouvrir la fentre des variables, de slectionner la chane mettre dimension et de slectionner Renommer la variable. Il n'y a plus qu' introduire la nouvelle longueur. Remarquez qu'il faut modifier le code de votre programme pour qu'il prenne en compte la nouvelle longueur. Fonctions de manipulation de chane de caractres Les fonctions de manipulation de chane permettent d'diter, modifier et examiner les chanes. Cliquer sur une fonction ajoute le code de base dans la fentre de la bote d'dition o l'on pourra l'diter avec les variables ncessaires. Exemples de chanes pour illustrer les fonctions : Str1[20] = "Hello " Str2[10] = "World" TestStr[20]
Remplace le contenu de la chane. Si la nouvelle chane est plus longue, les caractres en trop seront perdus. TestStr est devenu World .
TestStr = Str2
13/27
ToString$(valeur)
TestStr = ToString$(1234)
ToUpper$(chane)
TestStr = ToUpper$(Str1)
ToLower$(chane)
TestStr = ToLower$(Str1)
Length$(chane)
RetVal = Length$(Str1)
Note : la dimension de Str1 est de 20, mais la chane ne compte actuellement que 6 caractres, donc la rponse est 6.
Left$(chane, longueur)
TestStr = Left$(Str1, 3)
Constitue, partir de la chane dsigne, un morceau de chane de la longueur spcifie en commenant par la gauche. Si la longueur du morceau de chane est plus grande que celle de la variable de destination, les caractres en trop seront perdus. TestStr devient ainsi Hel . Constitue, partir de la chane dsigne, un morceau de chane de la longueur spcifie en commenant par la droite. Si la longueur du morceau de chane est plus grande que celle de la variable de destination, les caractres en trop seront perdus. TestStr est prsent lo . Constitue, partir de la chane dsigne et en commenant dbut , un morceau de chane de la longueur spcifie. Si la longueur du morceau de chane est plus grande que celle de la variable de destination, les caractres en trop seront perdus. TestStr contient alors llo . est dtermine par les rgles suivantes : 0 si les chanes sont identiques 1 si chane1 > chane2 255 si chane2 > chane1 Le troisime paramtre, compare_type, dtermine si la comparaison doit tenir compte de la casse ou non. Ce paramtre peut prendre deux valeurs : 0 = sensible la casse 1 = indiffrent la casse.
Right$(chane, longueur)
TestStr = Right$(Str1, 3)
TestStr = Mid$(Str1, 2, 3)
Compare$(chane1, chane2, compare_type) Compare la chane1 la chane2 et renvoie un octet dont la valeur
Exemples Str1 = "ABC" Str2 = "abc" RetVal = Compare$(Str1, Str2, 0) RetVal vaut 255 du fait que Str2 apparat plus loin dans la squence des codes ASCII. RetVal = Compare$(Str1, Str2, 1) RetVal vaut alors 0 parce que, abstraction faite de la casse, les deux chanes sont identiques. Str2 = Str1 RetVal = Compare$(Str1, Str2, 0) RetVal vaut encore 0, puisque maintenant les deux chanes sont identiques.
14/27
float = Nombre en virgule flottante convertir. string = Variable chane devant contenir les donnes de la conversion. string = FloatToString( float ) NumberToHex$( number ) Convertit un nombre en une chane hexadcimale.
number = octet ou nombre entier convertir. string = Variable chane devant contenir les donnes de la conversion. string = NumberToHex$( number )
StringToInt$(string) entire.
Convertit une chane de donnes ASCII numriques en une valeur de donne numrique
string = Variable chane contenant les donnes ASCII numriques. Retourne les donnes numriques de la chane au format dcimal. number = StringToInt$( string ) StringToFloat$( string ) Convertitune chane de donnes ASCII numriques en une variable en virgule flottante.
string = Variable chane contenant les donnes ASCII numriques. Retourne les donnes numriques de la chane au format de virgule flottante. float = StringToFloat$( string )
15/27
On insre la fonction dans l'algorigramme. Ensuite, on valide ou non l'interruption pour l'utiliser ou la masquer. Slectionnez la source d'interruption dsire dans le menu droulant "Interruption active" parmi celles disponibles sur le processeur utilis. Spcifiez les proprits pour cet vnement. Choisissez la macro appeler ou crez-en une nouvelle. Proprits des interruptions : TMR<X> Interruption par dpassement de capacit d'un temporisateur (par ex. TMR0 overflow) Arrte l'excution du programme normal et excute la macro d'interruption chaque fois que le temporisateur spcifi arrive bout de course. La temporisation s'effectue par comptage des impulsions de l'horloge avec application d'un facteur de division (une explication suit). Quand le compteur atteint le maximum, il retombe zro en provoquant un dpassement de capacit (overflow) qui lance la procdure d'interruption. Les interruptions par dbordement de temporisateur se rptent priodiquement, ce qui se rvle trs pratique pour dclencher une procdure intervalle fixe ou pour des actions rptitives frquentes, comme la mise jour d'un afficheur. Nota : Vrifiez que la vitesse d'horloge est correcte (boite de dialogue "Project Options" du menu "Edition") parce qu'elle affecte le rglage de la frquence d'interruption du temporisateur. Ce sont le processeur et son temporisateur qui dterminent les proprits exactes disponibles. Aussi les rglages sur le dpassement du temporisateur peuvent-ils varier d'un processeur l'autre et mme d'un temporisateur l'autre. L'exemple ci-dessous donnera une ide des caractristiques que l'on peut rencontrer avec une interruption par dbordement. Des informations complmentaires sont donnes dans les botes de dialogue d'interruption, mais aussi dans les notes techniques des processeurs. Par exemple TMR1 sur le 16F877A a moins d'options de pr-diviseur que l'interruption TMR0, il ne permet pas non plus le choix du flanc de dclenchement comme sur TMR0.
16/27
Rapport du pr-diviseur : Slection d'un rapport de division du signal d'horloge. Le pr-diviseur rduit la frquence de l'horloge utilise pour le dclenchement du temporisateur, ce qui diminue la rcurrence de l'excution de la procdure d'interruption. Ce rapport peut prendre un certain nombre de valeurs diffrentes, selon le processeur choisi.
Par exemple : pour le Timer0 du PIC18F4455 utilis dans le circuit ECIO40, le rapport de prdivision est compris entre 1/1 et 1/256 et Flowcode utilise ce timer en 8 bits. Formule : frquence d'interruption = (Fhorloge/4)*Rapport du prdiviseur/2 d'instruction interne). Frquence d'horloge : 48 000 000Hz (48MHz) Rapport du pr-diviseur : 1 / 256 Frquence d'interruption : 183,105Hz
nbre bits timer
(Fhorloge/4 = frquence
Frquence d'horloge : 48 000 000Hz (48MHz) Rapport du pr-diviseur : 1 / 64 Frquence d'interruption : 732,422Hz
Nota : avec les ECIO, Flowcode V4.2 permet les interruptions par le Timer0 (mode 8 bits), le Timer1 (mode 16 bits) et le Timer2 (mode 8 bits), toutes les possibilits ne sont donc pas offertes.
INT
Procdure d'interruption dclenche par le changement d'tat logique sur une broche d'entre du processeur configure en "Interruption externe". On peut choisir de dclencher l'interruption sur : le flanc descendant de INT le flanc montant de INT Les interruptions INT sont utiles dans le cas o l'on souhaite que l'interruption s'excute quand un vnement externe particulier se produit, comme une commande d'arrt d'urgence par exemple. Nota : sur le PIC18F4455 (ECIO40) les broches RB0, RB1, RB2 permettent l'interruption INT (INT0, INT1, INT2)
Client
L'option Client permet la cration d'une procdure d'interruption entirement dfinie par le concepteur. Cette option est utile pour exploiter des sources d'interruption prsentes sur certains microcontrleurs et non implmentes directement par Flowcode (USART, comparateur analogique)
17/27
18/27
Flowcode dispose de nombreux "composants" que l'on peut placer sur le panneau de simulation (panel). Ils correspondent soit des composants physiques externes utiles pour la simulation, tels que des boutons poussoirs ou commutateurs, des afficheurs divers (LEDs, 7 segments, LCD), soit des fonctionnalits internes particulires du microcontrleur en liaison avec des circuits externes (convertisseur(s) A/N, commande(s) PWM, bus CAN, IC, USB). Ces composants sont configurables par bote de dialogue et peuvent ncessiter une ou plusieurs routines (sousprogrammes) pour fonctionner. Toutes les routines sont fournies et ne demandent qu'un paramtrage limit. Pour certains composants simples, tels que LED ou commutateur, dans un souci de formation l'utilisation des routines fournies ne s'impose pas, il est donc prfrable de grer directement ces composants. Cette notice se limite dcrire la mise en uvre de quelques composants classiques. Proprits du composant SWITCH (interrupteur) ou SWITCHbank (range d'interrupteurs) Proprits du composant LED (LED seule) ou LEDarray (matrice de LEDs) Proprits du composant led7seg (simple afficheur 7 segments) Proprits du composant led7seg4 (quadruple afficheur 7 segments) Proprits du composant LCDDisplay (afficheur LCD) Proprits du composant ADC (convertisseur Analogique/Numrique) Proprits du composant PWM (modulateur MLI)
Le PANNEAU de simulation
Lors d'un clic sur l'icne du composant dans la barre d'outil, celui-ci est pos sur le panneau de simulation (panel). Nota : Si ce panneau n'est pas visible, ouvrir Affichage dans la barre de menu et cocher "Panel". Par commodit il est prfrable de rendre ce panneau flottant (fentre Panel, clic droit sur Panel, slection de "Floating") puis d'ajuster sa taille. Dans la fentre de Proprits lie au panneau on peut paramtrer chaque composant, en particulier : ses proprits physiques (type, couleur, taille) en cliquant doite de Propits tendues, ses connections au microcontrleur en cliquant doite de Connexions.
19/27
Connexions
Prciser la ligne de port laquelle est reli le commutateur. La ligne Etat prcise si la connexion est valide ou non.
Connexions
Voir SWITCH ci-dessus
Remarque : il est gnralement plus judicieux d'utiliser la range d'interrupteurs, mme pour un seul, car ce composant permet de voir quelles broches ils sont raccords et de leur affecter des tiquettes. 20/27
Actif Haut : la LED s'allume avec un niveau logique 1 Actif Bas : la LED s'allume avec un niveau logique 0 Connexions
Prciser la ligne de port du microcontrleur laquelle est reli la LED. La ligne Etat prcise si la connexion est valide.
Connexions
Prciser le port du microcontrleur auquel sont relies les LEDs (toutes les LEDs du groupement doivent tre connectes au mme port). La ligne Etat prcise si la connexion est valide.
Remarque : il est gnralement plus judicieux d'utiliser la matrice de LEDs, mme pour une seule, car ce composant permet d'afficher quelles broches elles sont raccordes et de leur affecter des tiquettes. 21/27
Connexions
Prciser le port du microcontrleur auquel est reli l'afficheur Note : Tous les segments doivent tre connectes au mme port dans le cas o le point digital est utilis, il faut relier le point commun des segments une ligne d'un autre port. La ligne Etat prcise si la connexion est valide.
Routines composant
Deux routines composant sont prcrites et permettent donc d'utiliser trs facilement ce composant : Afficher_chiffre : allume les segments en fonction de la valeur du paramtre Valeur 1 et le point dcimal en fonction de la valeur Point_ Dcimal. Dans l'exemple ci-contre on affecte la valeur 4 la 2 variable Val (1) que l'on fait afficher ensuite (2). Le point dcimal est teint. Cleardigit : teint l'afficheur.
22/27
Proprits tendues
Format LCD : Dfinit le nombre de cractres par ligne x le nombre de lignes. Taille Texte : Permet de dfinir la hauteur des caractres (en pixels) du pictogramme affich sur le panneau de simulation. Couleur Texte: Permet de dfinir la couleur des caractres sur le pictogramme affich sur le panneau de simulation. Couleur Arrire-plan: Permet de dfinir la couleur de l'arrire-plandes caractres sur le pictogramme affich sur le panneau de simulation.
Connexions
Prciser le port du microcontrleur auquel est reli l'afficheur Nota : Les connexions indiques par dfaut correspondent celles de l'Eblock EB005. Dans le cas de l'utilisation de ce circuit seule la lettre de port peut donc tre change. La ligne Etat prcise si la connexion est valide.
Routines composant
Dix routines composant sont prcrites et permettent donc d'utiliser trs facilement ce composant : Init : Cette routine doit tre appele une fois pour initialiser l'afficheur LCD avant toute autre routine le concernant. Effacer : Efface l'afficheur Effacer_Ligne (Ligne (OCTET)) : Efface la ligne dont le numro correspond la valeur de Ligne crit_Caractre (Caractre (OCTET)) : crit le caractre correspondant au code ASCII de la valeur caractre. crit_Nombre (Nombre (ENTIER)) : crit le nombre. crit_Chane (Chaine Caractres (CHAINE)) : crit la chane de caractres. Commande (in (OCTET)) : Envoie un octet de commande l'afficheur (consulter la fiche dtaille de l'afficheur) Curseur(x(OCTET), y(OCTET)) : Positionne le curseur dans une position donne en x et en y Drouler_Affichage(Direction (OCTET), Nombre_Positions (OCTET)) : fait dfiler l'affichage vers la gauche ou la droite en fonction du nombre de positions correspondant la variable Nombre_Positions. Si l'octet Direction vaut 0 l'affichage dfile vers la gauche Si l'octet Direction vaut 0 l'affichage dfile vers la gauche criture_en_RAM (nldx(OCTET), d0(OCTET) d7(OCTET)) : modifie la mmoire interne de l'afficheur afin d'y intgrer jusqu' 8 caractres personnaliss. Les caractres sont numrots de 0 7 grce la valeur de nldx. Les octets d0 d7 correspondent aux valeurs des donnes en colonne du caractre personnalis. Pour afficher un de ces caractres il faut utiliser la routine crit_Caractre Nota : cette routine n'est pas simulable.
23/27
Proprits tendues
Temps Acquisition : Dfinit la dure de charge du condensateur de l'chantillonneur/bloqueur avant de lancer la conversion. Si un seul canal de conversion Analogique/Numrique est utilis le rglage peut tre 0 ou 1 pour maximiser la vitesse de conversion, sinon la valeur par dfaut de 40 est recommande. Vitesse Conversion : Dfinit la dure de conversion TA/D. Si choix FRC => TA/D = 1s Sinon formule : TA/D = 1/VitesseConversion Ex : VitesseConversion = FOSC/16 Si FOSC = 48MHz (ECIO40) => TA/D = (16/48)*106 = 0,33s Nota : sachant que TA/D mini = 0,8ms, si FOSC = 48MHz seules les vitesses de conversion FRC et FOSC/64 conviennent. Option_Vref : Dfinit la source pour la tension de rfrence du convertisseur. VDD : la rfrence est fournie par le +5V du microcontrleur. VREF+ : la rfrence est fournie par une source annexe (conversion plus prcise qu'avec VDD) Tension_Vref : Dfinit la valeur de la tension de rfrence du convertisseur. Type : Le convertisseur ADC est matrialis sur le panneau de simulation par le pictogramme d'un potentiomtre animable manuellement : soit potentiomtre tournant (bouton), soit potentiomtre rectiligne (curseur).
Connexions
Prciser la ligne de port du microcontrleur utlise en entre ADC (li au microcontrleur utilis). La ligne Etat prcise si la connexion est valide.
Routines composant
Quatre routines composant sont prcrites et permettent donc d'utiliser trs facilement ce composant : Lire_comme_Octet : Renvoie les 8 bits de poids fort de la valeur analogique convertie. Exemple : avec un convertisseur de rsolution >=8 bits, la valeur renvoye est comprise entre 0 et 255 par incrment de 1 Lire_comme_Entier : Renvoie la valeur analogique convertie sous forme d'Entier (nombre 16 bits) Nota : tous les bits ne sont pas significatifs. Il faut se rfrer la documentation du microcontrleur pour connatre la rsolution du (des) convertisseur(s) ADC. Par exemple, sur le PIC 18F4455 utilis dans l'ECIO40, la rsolution est de 10 bits. La valeur renvoye est donc comprise entre 0 et 1023 par incrment de 1. Lire_comme_Tension : Renvoie la valeur analogique de la tension convertie sous forme de nombre virgule flottante (nombre 32 bits) Exemple : avec VDD = 5V et un convertisseur 10 bits la valeur renvoye est comprise entre 0.00 et 5.00 par incrment de 0.05 Lire_comme_Chane : Renvoie la valeur analogique de la tension, convertie en nombre virgule flottante, sous forme de chane de caractres (intressant en association avec un afficheur LCD).
24/27
Proprits tendues
Les copies d'cran ci-dessous correspondent un microcontrleur PIC 18F4455 possdant deux canaux PWM, CCP1 et CCP2, correspondant respectivement aux broches 17 et 16 (ou 36 si on utilise la broche alternative (alternative pin)). Period register : Nombre de valeurs possibles du rapport cyclique = Period register +1. Clock source : Valeur du prdiviseur de la frquence d'horloge du microcontrleur. En pratique il faut combiner les 2 rglages pour obtenir la frquence de modulation (Frequency) souhaite en fonction de la frquence d'horloge du microcontrleur (Clock speed).
Connexions
Pas de connexions spcifier pour ce composant.
Routines composant
Cinq routines composant sont prcrites et permettent donc d'utiliser trs facilement ce composant : Enable (nldx(OCTET)) : Valide le canal PWM spcifi et lance son fonctionnement Dans l'exemple ci-dessus la routine est appele 2 fois : une 1re fois avec nldx = 1 pour activer CCP1 et une 2me fois avec nldx = 2 pour activer CCP2. Disable (nldx(OCTET)) : Dsactive le canal PWM spcifi. SetDutyCycle (nldx(OCTET), nDuty(OCTET)) : Fixe la valeur du rapport cyclique (nDuty) du canal PWM spcifi (nldx). Dans l'exemple ci-dessus la routine est appele 2 fois : une 1re fois pour CCP1 (nldx = 1) avec nDuty = 200 => le rapport cyclique = 200/250 = 80% une 2me fois pour CCP2 (nldx = 2) avec nDuty = 100 => le rapport cyclique = 100/250 = 40% SetDutyCycle10bit (nldx(OCTET), nDuty(ENTIER)) : Fixe la valeur sur 10 bits du rapport cyclique (nDuty) du canal PWM spcifi (nldx). Le rapport cyclique varie de 0% (nDuty = 0) 100% (nDuty = 1000) ChangePeriod (nPeriodVal(OCTET), nPrescalerVal(ENTIER)) : Permet de modifier en cours d'excution les valeurs de Period register et de Clock source ( utiliser avec prcaution).
25/27
Le pas--pas dtaill : l'algorigramme est excut Simulation continue Suspendre icne par icne chaque clic de souris sur le Arrter bouton. Pas--pas dtaill Un rectangle rouge signale licne en Pas--pas principal cours dexcution. Toutes les macros traites en algorigrammes sont simules. Les fentres des variables, de la pile des appels de macros et du PICmicro sont mises jour chaque tape de la simulation. Le pas--pas principal : fonctionne comme le Pas Pas dtaill, la diffrence suivante : quand le mode Pas Pas principal rencontre une macro contenant un algorigramme spar, Pas Pas principal traite la macro en entier au lieu de louvrir et de lexcuter pas pas comme le ferait Pas Pas dtaill. Vitesse de simulation : En mode "simulation en continu" la vitesse de simulation est rglable dans la boite de dialogue "Options Projet" du menu "Edition" afin d'observer le droulement du programme. Nota : Si le rglage "Aussi vite que possible" est slectionn alors les fentres des variables, de la pile des appels de macros et les vues du microcontrleur ne sont pas rafrachies moins de suspendre le droulement de la simulation.
Excuter
Les points d'arrt : Ajouter et enlever des points darrts Les points darrts peuvent tre mis ou enlevs en slectionnant licne sur laquelle vous voulez vous arrter, puis en choisissant loption Mettre/enlever un point darrt du menu Edition. Une autre faon de faire est dutiliser la touche fonction F9. Pour effacer tous les points darrt, slectionner Effacer tous les points darrt depuis le menu Edition. Les points d'arrt sont matrialiss par un point rouge en haut et gauche de l'icne slectionne. Utilisation de points darrts Lorsque quun algorigramme est simul en continu, la simulation sarrte la rencontre le premier point darrt. Appuyer sur la touche Excuter pour relancer le droulement de la simulation jusqu la rencontre du prochain point darrt sil y en a ou jusqu la fin sil ny en a plus dautres. Lorsque la simulation rencontre un point darrt, lutilisateur peut examiner la valeur des variables, les entres/sorties, les composants du panneau de simulation... Les points darrts sont bien pratiques pour arrter le programme au dbut dun morceau de code particulirement complexe. Lutilisateur peut alors prendre la main pour avancer pas pas et mettre au point son programme.
26/27
FLOWCODE V4.2 Notice d'utilisation La compilation et le transfert d'un programme vers un PICmicro
Si on utilise les cartes de dveloppement ECIO28 ou ECIO40 de Matrix Multimedia, toutes les options de compilation sont pr-renseignes, le mode opratoire est donc des plus simples. Introduction Les microcontrleurs PICmicro peuvent seulement excuter du code hexadcimal (format ;hex). Flowcode doit donc traduire les algorigrammes (format .fcf) en un format comprhensible par un composant PICmicro. Flowcode procde de la faon suivante : 1 Traduit lalgorigramme en code C (format .c) 2 Compile le code C en Assembleur (format .asm) 3 Assemble le programme assembleur en code Hexa (format .hex) 4 Envoie le code Hexa au composant PICmicro Bien que ceci puisse paratre un peu lourd, cette faon de faire procure lavantage de permettre denfouir dans le programme du code C ou de lassembleur provenant de tiers. Cela permet galement au programmeur confirm d'observer le code C ou le code assembleur gnrs pour cerner certains dysfonctionnements. Nota : Avant de compiler l'algorigramme en un programme qui sera envoy au microcontrleur PICmicro, il faut vrifier que le choix de PICmicro cible est correct (boite de dialogue "Options Projet" du menu "Edition") Compiler un programme vers une carte de dveloppement ECIO28 ou ECIO40 : Vrifier le choix de la cible Raccorder la carte ECIO un port USB du PC Lancer la compilation/transfert du programme vers le microcontrleur (menu Puce Compiler -> Puce) En fin de processus, une fentre avec le message "Please connect the ECIO" s'affiche, il faut alors actionner le bouton Reset de la carte ECIO et le programme est transfr en mmoire du PICmicro.
27/27