PIC, problème INCOMPREHENSIBLE :(
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

PIC, problème INCOMPREHENSIBLE :(



  1. #1
    invite116c4f9b

    Thumbs down PIC, problème INCOMPREHENSIBLE :(


    ------

    Bonjour,

    alors voilà, j'ai fais un montage avec un 16F877, et compilé avec mikroC.

    Le montage est le suivant :
    - un module LCD connecté sur 4 bis sur le portB
    - des LEDS connectées sur le port D
    - 2 interrupteurs switch connectés sur RC1 et RC2

    Tout fonctionnait bien tant que je ne testais pas dans mon code l'état du bouton sur RC2, mais dès que j'ai ajouté les tests sur ce bouton, l'afficheur LCD m'affiche n'importe quoi comme caractères ! Je ne comprend pas le rapport, je débute en plus ...

    En gros, voici le code qui fonctionne :

    Code:
    void main(){
      char oldstate = 0;
      char oldstate2 = 0;
      
      // BOUTON
      TRISC = 0xff;
    
      // LED
      PORTD=0;
      TRISD = 0;
    
      PORTD.F3=1;
      
      // LCD
      PORTB=0;
      TRISB  = 0;
    
      LCD_Init(&PORTB);
      LCD_Cmd(LCD_CLEAR);
      LCD_Cmd(LCD_CURSOR_OFF);
      LCD_OUT(1,1,"Hello");
      Delay_ms(2000);
      LCD_Cmd(LCD_CLEAR);
      LCD_Cmd(LCD_CURSOR_OFF);
      LCD_OUT(1,1,"Waiting ...");
    
    
    
    do {
    
      LCD_OUT(1,1,"Waiting ...     ");
    
      if (Button(&PORTC, 1, 1, 1))
      {
        oldstate = 1;
      }
    
      if (oldstate && Button(&PORTC, 1, 1, 0))
      {
        PORTD.F2 = ~PORTD.F2;
        oldstate = 0;
        LCD_Cmd(LCD_CLEAR);
        LCD_Cmd(LCD_CURSOR_OFF);
        LCD_OUT(2,1,"Bouton RC1 ");
        }
    
    } while(1);
    
    
    }
    Ce code fonctionne nikel

    PAR CONTRE, si je rajoute uniquement le code suivant, tout merde !!

    Code:
      if (Button(&PORTC, 1, 1, 1))
      {
        oldstate2 = 1;
      }
    
      if (oldstate2 && Button(&PORTC, 1, 1, 0))
      {
        PORTD.F2 = ~PORTD.F2;
        oldstate2 = 0;
        LCD_Cmd(LCD_CLEAR);
        LCD_Cmd(LCD_CURSOR_OFF);
        LCD_OUT(2,1,"Bouton RC2");
        }
    Là tout merde

    Des idées ???

    Merci

    -----

  2. #2
    invite116c4f9b

    Re : PIC, problème INCOMPREHENSIBLE :(

    Dans la partie du code qui fait merder, il fallait lire PORTD.F3 = ~PORTD.F3; à la place de PORTD.F2 = ~PORTD.F2;

    Et justement, c'est ce PORTD.F3 = ~PORTD.F3; qui fait tout merder !!!!!
    Si je met à la place PORTD.F2 = ~PORTD.F2; tout fonctionne sans souci, je ne comprend pas !!!

    Merci de m'aider

Discussions similaires

  1. 9 box incompréhensible !!
    Par inviteba61ab7d dans le forum Internet - Réseau - Sécurité générale
    Réponses: 8
    Dernier message: 15/05/2006, 22h45
  2. Problème incompréhensible de partage de dossier
    Par invite1ec80939 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 0
    Dernier message: 22/03/2006, 22h42
  3. Problème incompréhensible avec lecteur de disquette
    Par invite762f942f dans le forum Matériel - Hardware
    Réponses: 6
    Dernier message: 03/01/2006, 21h57
  4. probleme reseau incomprehensible
    Par invite4db73860 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 04/05/2004, 10h27
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...