Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Programmation afficheur OLED



  1. #1
    jules38410

    Programmation afficheur OLED


    ------

    Bonjour,

    J'ai un problème avec mon afficheur OLED Raystar REC001602AYPP5N00001, j'utilise un PIC24Fj128GA010.
    J'arrive à afficher des caractéres sur mon écran OLED mais certain ne marchent pas et le dernier se répete. De plus mon programme fonctionne avec un écran LCD.
    Je ne comprend pas, donc si vous pouviez m'aider, merci.

    voici les 3 fonctions principales de l'afficheur :

    Code:
    #define		E		PORTD.4 			// bit E
    #define		RS		PORTB.15 			// bit RS
    #define		D0		PORTE.0 			// bit de donnée (poids faible)
    #define		D1		PORTE.1
    #define		D2		PORTE.2
    #define		D3		PORTE.3
    #define		D4		PORTE.4
    #define		D5		PORTE.5
    #define		D6		PORTE.6
    #define		D7		PORTE.7 			// bit de donnée (poids fort)
    
    void InitLCD()
    {
    	
            tempoms(500);
    	valinstr(0x38);
           
            valinstr(0x0E);
    	
             valinstr(0x06);
            
    	valinstr(0x01);
          
            valinstr(0x02);
           
    }
    
    
    
    / Fonctions pour valider instruction
    void valinstr(char data)
    {
         
    	//E=1;
        LATD=0x10;
    	//RS=0;
        LATB=0x0000;
    	tempoms(1);
    	LATE=data;
    	tempoms(1);
    	//E=0;
            LATD=0x00;
    	tempoms(1);
    //	E=1;
           LATD=0x10;
    }
    
    //////////////////////////////////////////////////////////////////////////////////////////
    // Fonctions pour valider caractère
    void valcaract(char data)
    {
      
    	//E=1;
          LATD=0x10;
    	//RS=1;
          LATB=0x8000;
    	tempoms(1);
    	LATE=data;
            tempoms(1);
    	//E=0;
            LATD=0x00;
    	tempoms(1);
    	//E=1;
             LATD=0x10;
    }

    -----
    Dernière modification par Jack ; 06/06/2014 à 12h10. Motif: ajout balises code

  2. Publicité
  3. #2
    Jack
    Modérateur

    Re : Programmation afficheur OLED

    Ca ira car il s'agit de ton 1er message, mais il faudra qu'à l'avenir tu lises les règles du forum avant de poster:
    http://forums.futura-sciences.com/programmation-langages-algorithmique/441632-regles-participatives-forum.html

    En conclusion, poste dans le bon forum et soigne la présentation de ton code.
    Discussion transférée.

  4. #3
    Jack
    Modérateur

    Re : Programmation afficheur OLED

    J'arrive à afficher des caractéres sur mon écran OLED mais certain ne marchent pas et le dernier se répete. De plus mon programme fonctionne avec un écran LCD.
    peu importe que l'affichage se fasse sur des led organiques ou des cristaux liquides, ce qui compte pour programmer l'afficheur, c'est son contrôleur.

    Soit tu possèdes la notice de cet afficheur, soit tu lis le datasheet du contrôleur utilisé.

    A+

  5. #4
    jules38410

    Re : Programmation afficheur OLED

    J'ai déjà regarder la datasheet de l'afficheur OLED et il est censé fonctionner comme le LCD, c'est pour cela que je ne comprend pas d'ou vient le problème.

  6. A voir en vidéo sur Futura
  7. #5
    Jack
    Modérateur

    Re : Programmation afficheur OLED

    Quelle est la référence exacte de ton afficheur oled? Tu peux donner la doc en pièce jointe, ou un lien?

  8. #6
    jules38410

    Re : Programmation afficheur OLED

    mon est afficheur est le REC001602AYPP5N00001,
    voici un lien d'une datasheet : http://www.comsel.it/risorse/REC001602AYPP5N00001.pdf

  9. Publicité
  10. #7
    jules38410

    Re : Programmation afficheur OLED

    Mon problème est en partie résolu, j'affiche tout les caractéres comme il faut.
    Le seul hic qui reste, est l'instruction clear qui efface mais qui ne fait pas revenir le curseur à la ligne, il suffit de rajouter l'instruction retour au début mais bon ça ne devrait pas être necessaire donc si jamais une personne à la solution.

    voila le changement effectuer dans les 2 fonctions caractére et instruction :
    ps: je ne comprend pas pourquoi cela change quelque chose donc ça marche mais j'aimerais aussi bien savoir pourquoi.
    merci

    Code:
    void valinstr(char data)
    {
         
      
    	//RS=0;
              LATB=0x0000;
    	tempoms(1);	
          //E=1;
              LATD=0x10;
            tempoms(1);
    	LATE=data;
    	tempoms(1);
    	//E=0;
            LATD=0x00;
    
           
    }
    
    //////////////////////////////////////////////////////////////////////////////////////////
    // Fonctions pour valider caractère
    void valcaract(char data)
    {
      
    	//RS=1;
          LATB=0x8000;
          //E=1;
          LATD=0x10;
    	tempoms(1);
    	LATE=data;
            tempoms(1);
    	//E=0;
            LATD=0x00;
    
    }

  11. #8
    Jack
    Modérateur

    Re : Programmation afficheur OLED

    Je pensais à un problème de timings non respectés, mais ça ne semble pas être le cas.

    Mais comme ça ne coûte rien d'essayer, passe-voir les tempos des fonctions valinstr et valcaract de 1 ms à 5 ms.

  12. #9
    jules38410

    Re : Programmation afficheur OLED

    J'ai essayé mais ça ne change rien, j'avais aussi mit une tempo au lieu de tester le busy (la flemme de faire fonction si ça n'était pas le probléme) mais ça ne changait rien non plus (j'ai bien fait ^^), le probléme était l'orde ds lequel je configurais le bit E et RS mais POURQUOI je ne sais pas et ça ne semble pas logique.

  13. #10
    Jack
    Modérateur

    Re : Programmation afficheur OLED

    Le seul hic qui reste, est l'instruction clear qui efface mais qui ne fait pas revenir le curseur à la ligne
    Il me semble qu'un clear prend 4 à 5 ms.

    Dans tous les cas, pour être sûr que les temps sont respectés, l'idéal est tout de même de lire le busy flag de l'afficheur.

    PS: je n'avais pas vu ta nouvelle réponse.
    Je jette un oeil sur les chronogrammes de la doc

  14. #11
    Jack
    Modérateur

    Re : Programmation afficheur OLED

    Ton code corrigé respecte le temps tAS qui est de 20 ns. Il faut en effet que RS et R/W soit stabilisés avant de donner une impulsion sur E.

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/06/2013, 18h53
  2. Réponses: 2
    Dernier message: 20/03/2013, 19h52
  3. Afficheur Oled
    Par etoile91 dans le forum Électronique
    Réponses: 1
    Dernier message: 24/01/2012, 14h51
  4. afficheur LCD / OLED
    Par zypo dans le forum Électronique
    Réponses: 5
    Dernier message: 30/12/2009, 06h07
  5. Connecteur afficheur OLED
    Par Niark Niark dans le forum Électronique
    Réponses: 4
    Dernier message: 22/10/2007, 15h10
Découvrez nos comparatifs produits sur l'informatique et les technologies.