IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

problème de programmation


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 37
    Par défaut problème de programmation
    salut, je suis débutant point de vue programmation PIC16F877A sous le compilateur PCWHD. Alors, mon travail consiste à afficher sur un écran LCD relié au PIC16F877A un message défilant, dont j'arrive à le faire, et c'est comme ça "veuillez entre le code" et ceci pour une porte de voiture, ainsi je n'arrive pas à taper le code que je veux qu'il soit masqué sachant que j'ai relié un clavier pour saisir le code correctement j’espère mais ceci ne marche pas malgré que mon programme soit opérationnel alors je ne sais pas ou est le problème alors l'aide sera le bienvenue et merci d'avance et voila mon programme que j'ai écrit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    #include "16F877A.h"
    #use delay(clock=10M)
    #byte PORTB= 0x06
    #byte PORTC= 0x07
    #byte TRISB= 0x86
    #byte TRISC= 0x87
    #byte PORTD= 0x08
    #byte TRISD= 0x88
    #bit E= PORTC.0
    #bit RS= PORTC.1
    #bit C1=PORTD.0
    #bit C2=PORTD.1
    #bit C3=PORTD.2
    int touche;
    void envoie_commande(char commande)
        {
          E=0;
          RS=0;
          PORTB=commande;
          E=1;
          delay_us(50);
          E=0;
        }
    void envoie_caractere (char caractere )
       {
          E=0;
          RS=1;
          PORTB=caractere;
          E=1;
         delay_us(50);
          E=0;
       }
    #int_timer0
    void clavier()
    {
       touche='\n';
       PORTD=0x08;//Selection de la ligne A
       if(C1==1){touche='1';while(C1==1);}
       if(C2==1){touche='2';while(C2==1);}
       if(C3==1){touche='3';while(C3==1);}
       PORTD=0x10;//Selection de la ligne B
       if(C1==1){touche='4';while(C1==1);}
       if(C2==1){touche='5';while(C2==1);}
       if(C3==1){touche='6';while(C3==1);}
       PORTD=0x20;//Selection de la ligne C
       if(C1==1){touche='7';while(C1==1);}
       if(C2==1){touche='8';while(C2==1);}
       if(C3==1){touche='9';while(C3==1);}
       PORTD=0x40;//Selection de la ligne D
       if(C1==1){touche='*';while(C1==1);}
       if(C2==1){touche='0';while(C2==1);}
       if(C3==1){touche='#';while(C3==1);}
    }   
    void init_LCD()
       {
          delay_ms(15);
          envoie_commande(0x3c);
          delay_ms(5);
     
          envoie_commande(0x3c);
          delay_ms(100);
     
          envoie_commande(0x0E);
          delay_ms(5);
     
          envoie_commande(0x01);
          delay_ms(5);
       } 
    void main()
    {
       TRISB=0x00;
       TRISC=0xFC;
       TRISD=0x87;
       setup_timer_0 (RTCC_DIV_128|RTCC_INTERNAL);
       enable_interrupts(INT_TIMER0);
       enable_interrupts(GLOBAL);
       init_LCD();
     
       while(true)
          {
          if(touche!='\n')
             {
             envoie_caractere(touche);
             touche='\n';
             }
     
          else envoie_commande(0x89);
                envoie_caractere("Veuillez entrer le code");
          }
     
     
    }

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    Malgré votre message très peu compréhensible ... je crois que l'erreur c'est que vous n'appelez pas la fonction 'clavier()' dans le main().
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 37
    Par défaut salut
    Je crois que je l'ai fait et c'est comme ça que je l'ai appelé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while(true)
          {
          if(touche!='\n')
             {
             envoie_caractere(touche);
             touche='\n';
             }
     
          else envoie_commande(0x89);
                envoie_caractere("Veuillez entrer le code");
          }

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Oui et il n'y a pas d'appel à la fonction clavier() (celle dont je suppose qui lit le clavier :p)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 37
    Par défaut
    alors comment dois je le faire ? s'il vous plait aidez moi....

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2004
    Messages : 329
    Par défaut
    Tu as écris une fonction qui s'appelle clavier non ? Ce code pour qu'il soit exécuter il faut bien l'appeler à un moment ? Tu pensais qu'il s'exécuterait quand ?

    C'est plus une question d'algo d'abord avant d'implémentation, soit clair sur ton algo et l'implémentation devrait couler de source...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Petit problème de programmation.
    Par willow.A dans le forum C
    Réponses: 3
    Dernier message: 08/01/2007, 16h36
  2. Problème en programmant un GUI swing
    Par kaelem dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 05/01/2007, 11h59
  3. Problème de programmation orientée objet
    Par dan65 dans le forum WinDev
    Réponses: 8
    Dernier message: 17/09/2006, 01h04
  4. problème finalisation programme
    Par depelek dans le forum Installation, Déploiement et Sécurité
    Réponses: 9
    Dernier message: 02/05/2006, 16h17
  5. Réponses: 1
    Dernier message: 26/09/2005, 19h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo