Afficheur LCD mikroC
Répondre à la discussion
Affichage des résultats 1 à 19 sur 19

Afficheur LCD mikroC



  1. #1
    invite7ab32ee4

    Afficheur LCD mikroC


    ------

    Bonjour,
    Dans le cadre d'un projet "télémètre à ultrason" j'ai besoin d'afficher sur un écran LCD une distance calculée auparavant.
    J'aimerai pour cela créer une fonction afficher où l'on rentre ce que l'on veut afficher. J'ai consulté l'aide de MikroC et voilà mon code :
    Code:
    int dist = 3400;
         Lcd_Init();                        // Initialisation
         Lcd_Cmd(_LCD_CLEAR);               // Efface
         Lcd_Cmd(_LCD_CURSOR_OFF);          // On éteint le curseur
    
         Lcd_Out(1,1,dist);
         delay_ms(10000);
    J'aimerai bien afficher la VALEUR de dist.
    Évidemment on pourrait écrire Lcd_Out(1,1,"3400"); mais notre valeur de dist est ma valeur calculée par une autre fonction.

    C'est un problème tout bête mais je tourne en rond.
    En espérant avoir été clair
    Merci d'avance

    -----

  2. #2
    invitedb9b1ced

    Re : Afficheur LCD mikroC

    Hello,

    Tu peux utiliser une chaîne de caractères avec sprintf() et y formater ta valeur.

    A+

  3. #3
    invite7ab32ee4

    Re : Afficheur LCD mikroC

    Cette fonction est elle vraiment compatible avec les PIC et les écrans LCD ? Ce n'est pas uniquement pour afficher dans la console ?
    Merci

  4. #4
    invitedb9b1ced

    Re : Afficheur LCD mikroC

    Citation Envoyé par Tidus1707 Voir le message
    Cette fonction est elle vraiment compatible avec les PIC et les écrans LCD ? Ce n'est pas uniquement pour afficher dans la console ?
    Merci
    Hi,

    Elle permet de copier une chaîne dans un tableau de char dans laquelle il peut y avoir des variable que tu formateras au style voulu : http://www.cplusplus.com/reference/c...stdio/sprintf/.

    ++

  5. A voir en vidéo sur Futura
  6. #5
    fdamien12

    Re : Afficheur LCD mikroC

    Je ne sais pas si cette fonction est implantée dans les librairies pour PIC.

    Sinon, pour une fois ce n'est pas compliqué de réinventer la roue :
    Si ton nombre a 4 chiffres maximum, par exemple 1234 :

    Lcd_Out(1,1,dist/1000); // Affiche 1
    Lcd_Out(1,1,dist/100 - 10*(dist/1000)); // Affiche 12 - 10*1 = 2
    etc...

    Si ta fonction n'attend qu'un char alors que tu as un chiffre tu fais :
    int chiffre = 7;
    Lcd_Out(1, 1, '0' + chiffre);

  7. #6
    invitedb9b1ced

    Re : Afficheur LCD mikroC

    Citation Envoyé par Blue Sn4ke Voir le message
    Je ne sais pas si cette fonction est implantée dans les librairies pour PIC.
    Hi,

    Elle est incluse dans la stdio.h qui est juste une librairie que tu trouves partout en C et même dans les PIC (personnellement utilisée sur du PIC18 et du MSP430).

    Par contre si "1,1" de Lcd_Out() correspond bien à la ligne/colonne de l'afficheur alors à chaque passage tu écrases l'ancien caractère, ne pas oublier d'incrémenter à la colonne suivante.
    Et puis si par exemple tu avais envie d'afficher ta variable en hexa', ou en binaire , en signé ou non , en float avec 3 chiffres significatifs ...? Merci sprintf ! () .

    ++

  8. #7
    invite7ab32ee4

    Re : Afficheur LCD mikroC

    Merci d'abord pour vos réponses.

    Je pense utilisé sprintf car j’apprends le C donc de nouvelles fonctions c'est toujours bon à prendre.
    Par contre on dirait que mikroC ne la connait pas. Faut il rajouter une librairie ? Et ensuite je ne vois pas comment utiliser la fonction même s'il y a un exemple sur la page que vous m'avez envoyé. Pourriez vous me donner un exemple ? Je dois quand même utiliser Lcd_Out après non ?

    Merci

  9. #8
    invitedb9b1ced

    Re : Afficheur LCD mikroC

    Citation Envoyé par Tidus1707 Voir le message
    Merci d'abord pour vos réponses.

    Je pense utilisé sprintf car j’apprends le C donc de nouvelles fonctions c'est toujours bon à prendre.
    Par contre on dirait que mikroC ne la connait pas. Faut il rajouter une librairie ? Et ensuite je ne vois pas comment utiliser la fonction même s'il y a un exemple sur la page que vous m'avez envoyé. Pourriez vous me donner un exemple ? Je dois quand même utiliser Lcd_Out après non ?

    Merci
    Hi,

    Regardes dans l'aide de ton compilateur, il devrait t'aider à propos du sprintf.

    Sinon pour un exemple basique :
    Code:
    char str[16]; 
    float fl=12.34; 
    
    void main () 
    { 
    sprintf(str,"Value is: %f ",fl);
    
    Lcd_Out(1,1,str);
    }
    Ça affichera "Value is: 12.34".
    Le principe c'est que la valeur de fl est mise à la place de "%" au format flottant ("f") dans la chaîne "Value is: " copié dans le tableau str.

  10. #9
    invite7ab32ee4

    Re : Afficheur LCD mikroC

    Oki excelente cette fonction. Merci beaucoup pour votre aide je vais tester ca sur ISIS en tout cas c'est super sympa. Vous travaillez dans l'informatique ?
    Bonne journée

  11. #10
    invitedb9b1ced

    Re : Afficheur LCD mikroC

    Citation Envoyé par Tidus1707 Voir le message
    Oki excelente cette fonction. Merci beaucoup pour votre aide je vais tester ca sur ISIS en tout cas c'est super sympa. Vous travaillez dans l'informatique ?
    Bonne journée
    À voir : http://www.mikroe.com/pdf/mikroc/mikroc_manual.pdf, page 364.

    Je travaille dans l'électronique.

  12. #11
    invite7ab32ee4

    Re : Afficheur LCD mikroC

    Arf il ne connais pas la fonction :s. J'ai lu ca sur le doc que vous m'avez envoyé : sprintf function is not supported for p12 and p16 PIC MCU families.

    Donc à mon avis ... c'est foutu non ?

  13. #12
    fdamien12

    Re : Afficheur LCD mikroC

    Citation Envoyé par amoniaque Voir le message
    Hi,

    Elle est incluse dans la stdio.h qui est juste une librairie que tu trouves partout en C et même dans les PIC (personnellement utilisée sur du PIC18 et du MSP430).

    Par contre si "1,1" de Lcd_Out() correspond bien à la ligne/colonne de l'afficheur alors à chaque passage tu écrases l'ancien caractère, ne pas oublier d'incrémenter à la colonne suivante.
    Et puis si par exemple tu avais envie d'afficher ta variable en hexa', ou en binaire , en signé ou non , en float avec 3 chiffres significatifs ...? Merci sprintf ! () .

    ++
    Salut,
    en effet sprintf est incluse dans stdio.h. J'avais suggéré l'idée d'isoler chaque chiffre et de les écrire un à un pour éviter au PIC d'exécuter cette fonction qui est probablement assez lourde par rapport aux ressources dont il dispose.

    Sinon oui il faut bien incrémenter la colonne à chaque fois, bien sûr

    Edit: mais je reconnais qu'il est nettement plus simple d'écrire un entier non signé en décimal qu'un float avec x chiffres significatifs

  14. #13
    invite7ab32ee4

    Re : Afficheur LCD mikroC

    Pas d'idée ? C'est bizarre quand même. Si vous avez une illumination éclairer moi ^^. Bonne soirée à vous .

  15. #14
    invitedb9b1ced

    Re : Afficheur LCD mikroC

    Citation Envoyé par Tidus1707 Voir le message
    Pas d'idée ? C'est bizarre quand même. Si vous avez une illumination éclairer moi ^^. Bonne soirée à vous .
    Dur ... Va falloir que tu fasses comme Blue Sn4ke a dit alors . Comme quoi les bonnes réponses sont toujours les premières !

  16. #15
    invite7ab32ee4

    Re : Afficheur LCD mikroC

    Mais c'est intéressant quand même merci

  17. #16
    invite7ab32ee4

    Re : Afficheur LCD mikroC

    J'ai trouvé .
    Une fonction magique qui convertit int en string : IntToString ^^.
    C'est un peu le même rôle que sprintf non ?
    Et ca affiche tout nickel.
    Merci à vous deux en tout cas
    Bonne semaine

  18. #17
    invite7ab32ee4

    Re : Afficheur LCD mikroC

    J'ai trouvé .
    Une fonction magique qui convertit int en string : IntToString ^^.
    C'est un peu le même rôle que sprintf non ?
    Et ca affiche tout nickel.
    Merci à vous deux en tout cas
    Bonne semaine

  19. #18
    invitedb9b1ced

    Re : Afficheur LCD mikroC

    Citation Envoyé par Tidus1707 Voir le message
    J'ai trouvé .
    Une fonction magique qui convertit int en string : IntToString ^^.
    C'est un peu le même rôle que sprintf non ?
    Et ca affiche tout nickel.
    Merci à vous deux en tout cas
    Bonne semaine
    Hello,

    Très certainement identique, et tu as le choix du type de formatage ? En hexa, décimal, flottant, binaire...?
    C'est une fonction de chez MikroC ?

    ++

  20. #19
    Thetimax

    Re : Afficheur LCD mikroC

    Bonjour!

    Hello,

    Très certainement identique, et tu as le choix du type de formatage ? En hexa, décimal, flottant, binaire...?
    C'est une fonction de chez MikroC ?

    ++
    Oui effectivement elle est presque identique a la difference que l'on ne peut pas formater l'affichage (comme sprintf).

    Elle fonctionne ainsi :

    Code:
    int input;
    char output[10];
    
    IntToStr(input, output);
    Lcd_Out(1,1, output);
    Il existe aussi:

    ByteToStr
    ShortToStr
    WordToStr
    IntToStr
    LongToStr
    LongWordToStr
    FloatToStr

    Voila...

    (Merci Vede )

    Ps: elle est beaucoup moins gourmande en ROM que la fonction sprintf

Discussions similaires

  1. Afficheur LCD
    Par invite30ece9c0 dans le forum Électronique
    Réponses: 2
    Dernier message: 22/03/2011, 16h24
  2. mikroC PIC16F688 et écran LCD 2x16
    Par invite5c61e511 dans le forum Électronique
    Réponses: 0
    Dernier message: 17/01/2010, 15h25
  3. programation LCD 4bits avec mikroC
    Par invite0b985a93 dans le forum Électronique
    Réponses: 1
    Dernier message: 24/10/2009, 12h43
  4. afficheur lcd en afficheur 7 segment
    Par invite3cc40cdb dans le forum Électronique
    Réponses: 3
    Dernier message: 04/02/2008, 09h43
  5. CAN et afficheur LCD
    Par invited25fdd6b dans le forum Électronique
    Réponses: 1
    Dernier message: 15/07/2007, 14h33
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...