[programmation C]-Afficheur 128x64 - Librairie GLCD - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 55 sur 55

[programmation C]-Afficheur 128x64 - Librairie GLCD



  1. #31
    Seb.26

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD


    ------

    Ensuite petite remarque pas méchante, on ne manie pas les #include au pif ... par exemple, pour #include <p18f4525.h> dans ton lcd.c alors que tu inclus ton .h qui lui même #include <p18f4525.h> ...

    Dans ton cas, c'est pas très grave, mais je te promets que dans un projet où il y a x developeurs et quelques centaines de fichiers .c/.h ... celui qui fait une boulette se fait taper sur les doigts par les copains ...

    -----
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  2. #32
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Donc si je comprend bien,
    dans mon main.c je fais:
    #include "glcd.h"

    et c'est tout...et je met le glcd.c dans mon projet et dans ce glcd.c je met aussi:
    #include "glcd.h"

    et je compile...et ça marche...enfin ça compile sans erreur
    merci Seb26 pour tes conseils..

    [modif: je met donc qune fois "glcd.h"...]

  3. #33
    Seb.26

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Oui, ton compilateur va generer un fichier de "code binaire" ( .o ) pour chacun de tes fichier source .c, et ensuite, c'est le linker qui se dépatouille pour prendre tous ces petits bouts et les mettre ensemble correctement ...
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  4. #34
    Seb.26

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Citation Envoyé par jorg1n Voir le message
    [modif: je met donc qune fois "glcd.h"...]
    En fait, un fichier .h définit quelle sont les "parties" du fichier .c que tu veux rendre visible de l'extérieur ...

    Par exemple :

    toto.c
    Code:
    unsigned char uc1 = 0x00;
    
    unsigned char get_uc1(void)
    {
      if( PORTA == 0x00 )
      {
        return( uc1 );
      }
      else
      {
        return( read_timer );
      }
    }
    
    unsigned char read_timer(void)
    {
      return( TMR1H );
    }
    
    
    void set_uc1(unsigned char value)
    {
      uc1 = value;
    }
    le toto.h correspondant :
    Code:
    unsigned char get_uc1(void);
    void set_uc1(unsigned char);
    Dans ce cas, tu inclus toto.h dans ton main, et tu n'as alors accès qu'aux parties qui te concernent : le get_uc1 et le set_uc1 ... mais par exemple tu ne peux pas appeler directement read_timer(), ni écrire dans uc1 ...

    .h pour par exemple permettre l'accès à uc1
    Code:
    extern unsigned char uc1;
    unsigned char get_uc1(void);
    void set_uc1(unsigned char);

    Dans ton main.c :
    Code:
    #include "toto.h"
    void main
    {
      set_uc1( 55 );
    
      while( get_uc1() == 55 );
    
       LED = !LED;
    
       //
       // ...
       //
    }
    PS: juste au cas où ... ce programme ne fait rien de bon ... c'est tout bidon ... c'est un exemple ...
    Dernière modification par Seb.26 ; 11/03/2008 à 15h19.
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  5. #35
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    D'accord...j'ai compris...
    Bon j'ai testé sur la carte..et ça marche...
    il m'affiche n'importe quoi pour l'instant, mais ça marche...
    Je vais bidouiller un peut pour savoir comment fonctionne tout ça...
    Si quelqu'un à déja utilisé cette librairie...qu'il se fasse connaitre...
    Encore merci pour ce gros coup de pouce...

  6. #36
    Seb.26

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Citation Envoyé par jorg1n Voir le message
    Encore merci pour ce gros coup de pouce...
    de nada

    << Have fun !!! >>
    << L'histoire nous apprend que l'on apprend rien de l'histoire. >>

  7. #37
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Bonjour,

    bon, j'ai trouvé une autre librairie(très très complete!!), avec un petit tutoriel.
    Et il y est expliqué comment réaliser un programme de test..
    Your main program module may be as simple as the one shown below. Here we simply call the function
    ghw_init() from the main().function once and wait forever.
    #include <gdisphw.h> /* Only low-level library definitions are needed */
    void main(void)
    {
    /* Insert initialize of processor configuration registers here, if required
    by target system hardware */
    ghw_init(); /* Call LCD hardware initialization in ghwinit.c */
    for(;; /* Wait forever */
    }
    Donc j'ai créer un nouveau projet, j'ai mis #include <gdisphw.h>, et dans le main: ghw_init();
    Mais la quand je compile, j'ai un problème, surement simple à régler..voila mon message d'erreur:
    C:\Documents and Settings\NGEORGIN\Bureau\Progr ammation\Test128x64RAMTEX\main _LCD128x64_RAMTEX.C:9:Error [1027] unable to locate 'gdisp.h'
    Mais je croyais que lorsque le ".h" était entre < ..>, il allait le chercher...
    Je ne comprend pas trop
    Merci d'avance

  8. #38
    invite74b5b8f7

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Salut,
    Mais je croyais que lorsque le ".h" était entre < ..>, il allait le chercher...
    Il va le chercher si il est situé dans ta librairie (avec tous tes include) sinon il faut le mettre dans ton projet et pour l´appeler: #include "gdisp.h"

  9. #39
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Si je comprend bien, je dois mettre ma bibliothèque dans le dossier "h" du compilateur C18?
    Merci encore

  10. #40
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Je me réexplique...
    Bon je viens d'essayé, c'est pareil, je m'explique, ma libraire glcd est composé d'un dossier qui contient lui meme des dossiers avec les différents .c et .h.
    mais dès que je fais appel à un .h, le compilateur ne le trouve pas..
    Mais j'ai essayé de copier le fichier et de le mettre dans mon projeta avec #include "..", la ça marche, mais c'est encore d'autres .h qu'il ne trouve pas...comment faire??
    Meci encore
    [dois copier tous les .h de la libraiires et les mettre dans MCC18/h??]
    Dernière modification par jorg1n ; 12/03/2008 à 12h56.

  11. #41
    cherwam07

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Dans les dernières versions de MPLAB, tu vas dans 'build options'

    Dans 'directories and search paths' tu fais dérouler le menu sur 'include search path'. Puis tu fais 'new' et tu selectionne le chemin vers ton dossier qui contient tous les .h

    Bon courage

  12. #42
    invite74b5b8f7

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    ma libraire glcd est composé d'un dossier qui contient lui meme des dossiers avec les différents .c et .h.
    Soit tu mets tous tes .h dans le dossier "include" de ton compilateur et tu les appels avec un #include <...>

    soit tu les mets dans ton dossier de projet et tu les appels avec un #include "..."

  13. #43
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Okay, ça marche, je les ai tous copié, et mis dans le dossier "h" de mon compilateur.
    Par contre je rencontre un probleme, lorsque je compile, j'ai comme erreur:
    Code:
    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: "C:\MCC18\bin\mcc18.exe" -p=18F4525 "main_LCD128x64_RAMTEX.C" -fo="main_LCD128x64_RAMTEX.o" -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-
    C:\MCC18\h\gdispcfg.h:199:Error [1034] previous definition of macro 'GSOFT_SYMBOLS' does not agree
    C:\MCC18\h\gdispcfg.h:202:Error [1034] previous definition of macro 'GVIEWPORT' does not agree
    C:\MCC18\h\gdispcfg.h:205:Error [1034] previous definition of macro 'GBASIC_TEXT' does not agree
    C:\MCC18\h\gdispcfg.h:208:Error [1034] previous definition of macro 'GBASIC_TEXT' does not agree
    C:\MCC18\h\gdispcfg.h:211:Error [1034] previous definition of macro 'GBASIC_INIT_ERR' does not agree
    Halting build on first failure as requested.
    BUILD FAILED: Wed Mar 12 14:03:22 2008
    Vous savez d'ou ça peut venir?
    merci encore

  14. #44
    cherwam07

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Est-ce que maintenant ton fichier 'gdispcfg.h' ne serait pas inclu deux fois ?

    Une fois directement dans ton .c et une autre fois indirectement.


    Essaye au début de gdispcfg.h de placer :

    #ifndef _GDISPCFG_H
    #define _GDISPCFG_H
    ...
    ...
    ... et à la fin :
    #endif

  15. #45
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Il y sont déja...

  16. #46
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Je commence à me dire que je n'ai pas fini de galérer avec mon afficheur graphique...mais bon, si tout fonctionnait du premier coup, ça serait pas drole!!
    Si vous avez une petite idée...
    Bonne fin de journée.

  17. #47
    cherwam07

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Envoi tes fichiers, ou dis nous ou tu les a trouvé.

    Comme ca on essaiera des les compiler de notre coté, ca ira plus vite que de te demander de faire 10000 manipulations....

  18. #48
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Bonjour,

    pour ceux qui veule la librairie complete...pour m'aider biensur...envoyé moi votre adresse mail en MP. Je vous transmettrai la bibliothèque.

    Encore merci

  19. #49
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Bon,je respire un peu mieux!!!
    ça ne marche toujours pas, mais j'ai reçu la documentation complete ...mais en anglais et surtout...155 pages!!
    Mais ça fait rien, je ne savais pas quoi faire ce soir et ce weekend...je vais lire un peu
    Je vous tiens au courant de l'avancement...et bien sur si j'arrive a allumé un pixel!!
    Bonne fin de journée..

  20. #50
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Bonjour, me revoilà avec ma foutue librairie...
    En fait, elle n'est pas complète, il faut la compléter, mais les indications sont très précises, par exemple:
    Code:
    void sim_reset( void )
       {
       /* 1. Init data port setup (if required by port architecture) */
       /* 2. Make RS, RW, CS0, CS1, RST to outputs (if required by port architecture) */
       /* 4. Set LCD reset line /RST active low   (if /RST is connected to a port bit) */
       /* 5. Set LCD reset line /RST passive high (if /RST is connected to a port bit) */
       }
    Donc , j'ai pas mal de boulot, mais j'ai une petite question, comment réaliser les instructions définit en 4/ et 5/? Il s'agit de dire que RST est actif au niveau bas et passive au niveau haut, mais en C ça donne quoi??(c'est une question simple surement...mais le réveil est dur!!)
    Merci d'avance et bonne journée.

  21. #51
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Je pensai faire ça avec un if:

    Code:
    if(NRSTB==0)
                 {
                  NRSTB=1;
                  }
              if(NRSTB==1)
                 {
                  NRSTB=0;
                  }
    Mais ça, ça marche qu'une fois....si je veux que ça prenne ça en compte tout le temps?

    Merci d'avance

  22. #52
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Personne n'as une petite idée??

  23. #53
    Bernaco

    Post Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Hello,

    Je ne peux pas te fournir de librairie en langage C toute faite pour ton projet, mais au moins au passage te proposer de télécharger mon outil freeware / gratuit pour faciliter ta programmation.

    Visite Bitmap2lcd.com et pour la partie matérielle, les notes d'application de la rubrique technique du site de hantronix me semblent indispensables.

    Amicalement,

    Bernaco

  24. #54
    jorg1n

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Je te remercie Bernaco...

    Bon j'avance tout doucement...
    J'ai complété un programme, mais il me mais cette erreur:
    C:\Documents and Settings\NGEORGIN\Bureau\Progr ammation\Test128x64RAMTEX\buss im.c:112:Error: syntax er
    Et lorsque je clique dessus, j'arrive en fin de programme sur une ligne vierge!!!
    D'ou peut venir l'erreur ...
    voila le code concerné:
    Code:
    #ifndef GHW_NOHDW
    #ifdef  GHW_SINGLE_CHIP
    
    #include <bussim.h>
    
    
    /*#include < Port declaration file for your compiler > */
    #include <p18f4525.h>
    /*
       Simulate a bus write operation for a LCD controller with an Motorola
       like bus interface (i.e. use of RW selector and an E strobe)
    */
    void simwrby(SGUCHAR adr, SGUCHAR dat)
       {
       /* A: Set RW = 0, RS line according to adr, set /CS0 or CS1 line active low  */
       sgwrbi(RW, 0);
       sgwrbi(RS, ((adr & RSB) != 0));
       sgwrbi(CS0,((adr & NCS0B) != 0));
       sgwrbi(CS1,((adr & NCS1B) != 0));
       /* B1: Make data port an output (if required by port architecture) */
       sgwrby(DATADIR,DATABUS_IS_OUTP);
       /* B2: Write data to data port */
       sgwrby(DATAWR,dat);
       /* C: Set E active high (+ delay if required) */
       sgwrbi(ECLK, 1);
       /* D: Set E passive low */
       sgwrbi(ECLK, 0);
       /* E: Set /CE passive high (could be ignored) */
       sgwrbi(CS0,1);
       sgwrbi(CS1,1);
       }
    
    /*
       Simulate a bus read operation for a LCD controller with an Motorola
       like bus interface (i.e. use of RW selector and an E strobe)
    */
    SGUCHAR simrdby(SGUCHAR adr)
       {
       SGUCHAR dat;
       /* a: Set RW = 1, RS line according to adr, set /CS0 or CS1 lines active low  */
       sgwrbi(RW, 1);
       sgwrbi(RS, ((adr & RSB) != 0));
       sgwrbi(CS0,((adr & CS0B) != 0));
       sgwrbi(CS1,((adr & CS1B) != 0));
       /* b: Make data port an input (if required by port architecture) */
       sgwrby(DATADIR,DATABUS_IS_INP);
       /* c: Set E active high (+ delay if required) */
       sgwrbi(ECLK, 1);
       /* d: Read data from data port */
       dat = sgrdby(DATARD);
       /* e1: Set E passive low */
       sgwrbi(ECLK, 0);
       /* e2: Set /CS0 and /CS1 passive high (could be ignored) */
       sgwrbi(CS0,1);
       sgwrbi(CS1,1);
       return dat;
       }
    
    /*
       Initialize and reset LCD display.
       Is called before simwrby() and simrdby() is invoked for the first time
    
       The LCD reset line is toggled here if it connected to a bus port.
       (it may alternatively be hard-wired to the reset signal to the processors
       in the target system).
    
       The sim_reset() function is invoked automatically via the ghw_io_init() function.
    */
    void sim_reset( void )
       {
       /* 1. Init data port setup (if required by port architecture) */
       sgwrby(DATADIR,DATABUS_IS_INP);
       /* 2. Make RS, RW, CS0, CS1, RST to outputs (if required by port architecture) */
       sgwrby(CTRLDIR,CTRLBUS_IS_OUTP);
       sgwrbi(RW, 1);
       sgwrbi(RS, 1);
       sgwrbi(CS0, 1);
       sgwrbi(CS1, 1);
       /* 4. Set LCD reset line /RST active low   (if /RST is connected to a port bit) */
       sgwrbi(NRST, 0);
       /* 5. Set LCD reset line /RST passive high (if /RST is connected to a port bit) */
       sgwrbi(NRST, 1);
       }
    
    
    #endif /* GHW_SINGLE_CHIP */
    #endif /* GHW_NOHDW */
    J'ai mis plus retour à la ligne en fin de programme, mais rien y fais...et justment, l'erreur m'emène au dernier retour à la ligne!!
    Une petite aide serait la bienvenue!!
    Encore merci
    Et bonne journée à tous

  25. #55
    cherwam07

    Re : [programmation C]-Afficheur 128x64 - Librairie GLCD

    Salut

    Juste pour voir : essai de mettre en commentaire les #if.. du debut et les #endif à la fin.

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. Outil pour Afficheurs LCD graphiques GLCD
    Par Bernaco dans le forum Logiciel - Software - Open Source
    Réponses: 18
    Dernier message: 18/02/2016, 07h18
  2. Afficheur Graphique 128x64 - Infos
    Par jorg1n dans le forum Électronique
    Réponses: 1
    Dernier message: 20/02/2008, 12h42
  3. LCD 128x64 T6963C sur PIC16F876
    Par invite58388f1a dans le forum Électronique
    Réponses: 1
    Dernier message: 17/10/2007, 08h25
  4. [lcd 128x64] Besoin d'informations
    Par invitef0cf02f0 dans le forum Électronique
    Réponses: 5
    Dernier message: 22/05/2007, 19h07
  5. Copie d'ecran GLCD vers SDcard station easypic 3
    Par invite3d33f9e2 dans le forum Électronique
    Réponses: 8
    Dernier message: 18/06/2006, 17h25
Découvrez nos comparatifs produits sur l'informatique et les technologies.