| Home » Diverses rubriques » Archive forum sujets |
|
|
|
|
LCD et prog PIC
|
|
Salut ! Peut être que quelqu'un peut me renseigner.
Je doit contrôler un afficheur LCD alphanumérique 4*16. Pour cela, j'uilise un pic 16f877. Je le programme en C avec le compilateur cc5x. Sur l'afficheur, je dois afficher des valeurs de paramètres et des mots. Je reçois en entrée du pic des données MIDI images des valeurs de paramètre.
Un exemple pour mieux comprendre le pic reçois une donnée MIDI (sur 8 bits) : 0100 0000 cette donnée correspond au paramètres de fréquence de valeur 20.16 Hz. Je veux donc afficher sur l'écran: "F = 20.16 Hz " Je recherche une fonction qui me permette de convertir une variable de type float en une chaîne de caractère. Il faut bien sur que cette fonction soit compatible avec cc5x.
Si quelqu'un a compris et peut me renseigner...
Merci.
Numéro de l'article: 79369
| De: jean
| Date: 2002-06-14 15:47:57
|
|
|
Re: LCD et prog PIC
|
|
=========== "0100 0000" : 64 en décimal à peu de rapport direct avec 20 point 16 , il faudrait commencer par décoder la donnée MIDI ( par exemple , par la fonction typique "c" : switch ( x) ... case ... après quoi ce compilateur dispose probablement d'une fonction de formatage du genre <printf([fonction],string,[valeur]) sans quoi , il faut la construire. bonne soirée
Numéro de l'article: 79399
| De: maioré
| Date: 2002-06-14 20:27:55
|
|
|
Re: LCD et prog PIC
|
|
Je ne connais pas ton compilateur, mais tu devrais avoir la fonction sprintf(). Cette fonction se comporte comme printf(), mais au lieu d'afficher a l'ecran, elle affiche... dans une chaine de caractere.
char mon_affichage[17]; float data;
sprintf(mon_affichage,"F=%f Hz",data);
Tu as maintenant dans ta chaine de caractere "F=20.16 Hz". Si tu veux choisir precisement l'affichage, remplace le "%f" par "%5.2f" par exemple (5 caracteres en tout, dont 2 apres la virgule. ca fait 2 avant la virgule + la virgule + 2 apres la virgule).
Essaie-ca !
gUI
Numéro de l'article: 79428
| De: Guillaume Betous
| Date: 2002-06-15 10:38:58
|
|
|