Affichage sur LCD en 4bits
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Affichage sur LCD en 4bits



  1. #1
    wave68runner

    Affichage sur LCD en 4bits


    ------

    Bonjour à tous,

    je me suis écrit une librairie pour mon lcd en 4bits, je l'initialise bien (je pense)

    J'arrive à afficher un caractère sans problème par contre pour afficher un mot, là, ca va moins bien.
    Code:
    void aff_txt(char *message){ 
    
    while(*message!= '\0') {      
       aff_car(*message);        
     
    	*message++; 
    	}
    }
    Donc pour afficher un mot, je dois procéder comme ceci :

    Code:
    char chaine[]="XXX";
    aff_txt(chaine)
    mais j'aimerais pouvoir aussi procéder comme cela :
    Code:
    aff_txt("Mon Texte");
    Est ce possible?

    Et dernière question, je réalise un calcul et aimerait afficher mon résultat. Si je fais comme cela :
    Code:
    int resultat;
    aff_txt(resultat);
    cela ne marche pas.
    Quel est le problème ou la solution?

    Merci

    -----

  2. #2
    Seb.26

    Re : Affichage sur LCD en 4bits

    Essaye :

    Code:
    while(*message)
    {      
       aff_car(*message);        
       message++; 
    }
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  3. #3
    Seb.26

    Re : Affichage sur LCD en 4bits

    Pour tes autres questions :

    voir la datasheet de ton uCPU ... un pointeur peut ne pas pouvoir pointer en RAM et en ROM ... il te faudrait alors faire 2 fonctions ...

    voir sprintf() ... ou fais toi une fonction perso si tu n'as pas beaucoup de types différents de données à afficher, sprintf() est un poil lourdingue ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  4. #4
    invite7a49d0d5

    Cool Re : Affichage sur LCD en 4bits

    Bonjour,

    Citation Envoyé par wave68runner Voir le message
    (...)
    Et dernière question, je réalise un calcul et aimerait afficher mon résultat. Si je fais comme cela :
    Code:
    int resultat;
    aff_txt(resultat);
    cela ne marche pas.
    Quel est le problème ou la solution?
    Merci
    pour afficher un nombre (integer) sur un LCD
    il faut d'abords le convertir en texte, cad l'encoder
    en caractères "ASCII"...

    pour faire cela, moi j'isole chaque "chiffre" du nombre,
    puis le convertit en son code ASCII (+=48)...

    un exemple en "pseudo-code" :
    Code:
    char texte_int[5];
    int valeur;
    int valtmp;
    
    valeur = 65523;
    
    valtmp = valeur;
    texte_int = "00000";
    if (valtmp > 9999)
    {
      texte_int[0] = (valtmp / 10000) + 48;
      valtmp = valtmp % 10000;
    }   
    if (valtmp > 999)
    {
      texte_int[1] = (valtmp / 1000) + 48;
      valtmp = valtmp % 1000;
    }      
    if (valtmp > 99)
    {
      texte_int[2] = (valtmp / 100) + 48;
      valtmp = valtmp % 100;
    }      
    if (valtmp > 9)
    {
      texte_int[3] = (valtmp / 10) + 48;
      valtmp = valtmp % 10;
    }      
    texte_int[4] = valtmp + 48;
    
    LCD_OUT(texte_int);
    sinon pour ce faire certains compilos intègrent une "librairie",
    de formatage ou conversion, style "Sprintf" ou "IntToStr" ou...

    vede
    ;O]
    ______________
    ...

  5. A voir en vidéo sur Futura

Discussions similaires

  1. affichage sur LCD 2*16
    Par inviteb815bb1a dans le forum Électronique
    Réponses: 2
    Dernier message: 09/04/2010, 20h43
  2. Affichage de l'année sur un lcd ?
    Par invite21b84cdb dans le forum Électronique
    Réponses: 2
    Dernier message: 30/03/2010, 16h55
  3. programation LCD 4bits avec mikroC
    Par Bernibernouille dans le forum Électronique
    Réponses: 1
    Dernier message: 24/10/2009, 12h43
  4. afficheur lcd 4bits
    Par invite5207145e dans le forum Électronique
    Réponses: 1
    Dernier message: 27/05/2009, 11h02
  5. Affichage temperature sur LCD?
    Par invitee25bb931 dans le forum Électronique
    Réponses: 10
    Dernier message: 31/03/2008, 17h38
Découvrez nos comparatifs produits sur l'informatique et les technologies.