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

Utiliser les résistance pull up interne d'un PIC



  1. #1
    schneiderj

    Utiliser les résistance pull up interne d'un PIC


    ------

    Bonjour,

    jusqu'à présent j'utilisais pour mon clavier composé de 4 boutons poussoirs des résistances externes. J'aimerais essayer pour le nouveau clavier 4*4 que je viens de recevoir de le connecter directement au PIC sans ajouter de résistances externes.

    Les lignes seront connectés au port B du pic32 (RB0 à RB3) et les colonnes au port C (RC1 à RC4). Le clavier sera scruté en mettant tout d'abord les lignes en sortie et les colonne en entrée puis vis versa. Jusque là je n'ai pas de problème... sauf que je suis incapable de trouver le registre qui permet d'activer les résistances internes !
    Et pourtant j'ai lu le data sheet du P32MX460F, de même que le document générale des P32 qui concernent la gestion des entrées/sorties.

    Pourriez-vous me donner un coup de main pour sortir de ce problème ?

    Merci
    Jean-Marie

    -----

  2. Publicité
  3. #2
    schneiderj

    Re : Utiliser les résistance pull up interne d'un PIC

    Et zute... il manque un s à résistance !

  4. #3
    vincent66

    Re : Utiliser les résistance pull up interne d'un PIC

    Bonsoir Jean-Marie !
    Il n'y a pas un registre RBCON dans ton pic ?
    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  5. #4
    RISC

    Re : Utiliser les résistance pull up interne d'un PIC

    Salut,

    Concernant la documentation des PIC32, il faut télécharger la datasheet et surtout, toutes les sections concernant les périphériques de la famille utilisés dans ton PIC32 ("Family Reference Manual").

    La section qui traite des ports d'E/S (section 12) et des registre Open Drain est celle-ci.

    Cherche les registres ODCx

    Il existe des exemples de code pour la plupart des périphériques ici : pour les PORTS d'E/S il y a celui-ci.


    a+
    Ma marotte ? les microcontrôleurs ;=)

  6. A voir en vidéo sur Futura
  7. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  8. #5
    schneiderj

    Re : Utiliser les résistance pull up interne d'un PIC

    Bonjour,

    Je suis désolé pour le délai de réponse qui est un peu long !
    Mais selon tout logique me revoilà.

    Merci pour votre aide : le clavier est opérationnel. Ce qui donne :

    Code:
    UINT8
    GetKeyPad(void)
    {
    
      //=========================
      //    Colonnes
      //    CN8  CNPUE8 RG6
      //    CN9  CNPUE9 RG7
      //    CN10  CNPUE10 RG8
      //    CN11  CNPUE11 RG9
      //=========================
      //    Lignes
      //    CN2  CNPUE2 RB0
      //    CN3  CNPUE3 RB1
      //    CN4  CNPUE4 RB2
      //    CN5  CNPUE5 RB3
    
    
      UINT16 LigneB = 0;
      UINT16 ColonneG = 0;
      UINT16 MaskB = 0b1111;
      UINT16 MaskG = 0b1111000000;
      UINT16 MaskCNPUE_B = 0b000000111100;
      UINT16 MaskCNPUE_G = 0b111100000000;
      UINT16 Temp;
    
      AD1PCFG = 0x001FFFFF;
      CNPUE = 0;
    
      //    Ligne en entrée -> TRIS = 1
      //    Colonne en sortie -> TRIS -> 0
    
      LigneB = 0x0F;
      ColonneG = 0x3C0;
      TRISB |= MaskB;
      TRISG &= ~MaskG;
      CNPUE = MaskCNPUE_B;
      LATG &= ~MaskG;
      Delayus(10);
      LigneB = (PORTB & MaskB);
    
      if(!(LigneB == 0x0F))
      {
          TRISB &= ~MaskB;
          TRISG |= MaskG;
          CNPUE = MaskCNPUE_G;
          LATB &= ~MaskB;
          Delayus(10);
          ColonneG = (PORTG & MaskG); // >> 6;
    
          if(!(ColonneG == 0x3C0))
          {
              LigneB = (~LigneB) & MaskB;
    //#ifdef  __DEBUG
    //          Controle = 12;
    //#endif
              ColonneG = (~ColonneG) & MaskG;
              ColonneG = (ColonneG >> 6);
              Delayms(100);
              switch(ColonneG)
              {
                  case 0b0001:
                  {
                      switch(LigneB)
                      {
    ...traitement du signel
    Ca fonctionne superb bien !

    Je ne peux pas en dire autant de l'I2C ou je me suis fait c... comme pas possible ! Tout cela parce que j'ai suivit l'exemple de Microchip.
    Mais cela fonctionne aussi maintenant. Si cela interresse quelqu'un faite moi signe !

    Jean-Marie

Discussions similaires

  1. Réponses: 12
    Dernier message: 19/01/2012, 15h32
  2. Programmation des Pull-up interne d'un PIC18F2523
    Par bonhommr dans le forum Électronique
    Réponses: 3
    Dernier message: 21/02/2011, 22h35
  3. Résistance interne et decharge d'un condo
    Par joseph4008 dans le forum Électronique
    Réponses: 6
    Dernier message: 03/11/2010, 09h20
  4. Résistance interne d'un condensateur
    Par Chef-Toren dans le forum Électronique
    Réponses: 18
    Dernier message: 18/09/2008, 06h22
  5. Problème Tension PIC-Résistance pull up??
    Par jorg1n dans le forum Électronique
    Réponses: 6
    Dernier message: 12/11/2007, 07h33
Découvrez nos comparatifs produits sur l'informatique et les technologies.