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

PIC, problème INCOMPREHENSIBLE :(



  1. #1
    zoocoral

    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
    zoocoral

    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

Sur le même thème :

Discussions similaires

  1. 9 box incompréhensible !!
    Par manuvaxe 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 fredmelaud 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 dockfox dans le forum Matériel - Hardware
    Réponses: 6
    Dernier message: 03/01/2006, 21h57
  4. probleme reseau incomprehensible
    Par supermers dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 04/05/2004, 10h27
Découvrez nos comparatifs produits sur l'informatique et les technologies.