Tester Port PIC18F4550 en entrée et sortie
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Tester Port PIC18F4550 en entrée et sortie



  1. #1
    -mr_j-

    Tester Port PIC18F4550 en entrée et sortie


    ------

    Bonjour a tous

    Je suis en train de réaliser la gestion d'un four en C sur un 18F4550 et j'ai un problème au niveau de la mise en oeuvre du clavier. Je n'ai pas le choix du cablage et toutes les pins du clavier (matrice 3x4) sont branchées sur le portD du pic. Du coup le registre TrisD a cette tete : TRISD= 0b10101100.

    Je voudrais savoir s'il est possible de tester tout le portD d'un coup car mplab gueule lorsque que je rentre un "if(PortD==0b00000000)" me disant que certains bits du port correspondent à des sorties :s

    Je suis en train de mettre en place un masque mais sans grande conviction.

    Si vous avez des conseils je suis preneur. Si vous avez aussi des astuces quant à la gestion d'un clavier 3x4 n'hesitez pas, je me suis rétracté sur un programme enchainant 3 "switch ...case" (un pour chaque colonne) mais je trouve que c'est pas super classe

    J'aurais aimé faire une boucle for avec en paramètre la colonne scrutée mais cela rejoint mon problème de test de port.


    Merci d'avance pour votre aide
    Jérémy

    -----

  2. #2
    vincent66

    Re : Tester Port PIC18F4550 en entrée et sortie

    Bonjour
    En testant un bit du portD genre if(portD.n==0) le compilo gueule aussi ?
    Sinon je pense que en copiant le portD dans une variable et en travaillant sur celle-ci ça devrait aller...
    Une astuce ?
    Pour ma part j'attends que une touche ait été appuyée puis je lance le scan pour savoir précisément laquelle, en mettant toutes les colonnes à 0 et utilisant le "interrupt on pin state change" sur les lignes...

    Vincent
    Leonardo était ingénieur "sans papier", et moi diplômé juste...technicien...

  3. #3
    paulfjujo

    Re : Tester Port PIC18F4550 en entrée et sortie

    bonsoir,


    Quel compilo ?

    sous C18
    avec PORTC initialisé avec un mixte In et out
    TRISC = 0b10000011;


    if(PortC==0b00000000) // genere une erreur PortC non defini
    par contre no problemo avec
    if(PORTC==0b00000000) // en majuscule..

  4. #4
    bisou10

    Re : Tester Port PIC18F4550 en entrée et sortie

    Tu peux lire l'état du PORTD même s'il est affecté en sortie.

    Tu peux aussi lire bit à bit (la syntaxe dépend de ton compilateur, ici avec XC8) : if (PORTDbits.RD3 == 1)

    Pour une matrice, effectivement tu as le choix de l'implémentation. Dans tous les cas tu devras de toutes façons définir l'action sur ton matrice Lignes/Colonnes, moi je travaillerais dans ce sens si possible.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Aide PORT d'entree sortie + Carte PC
    Par DADYCOKE dans le forum Électronique
    Réponses: 5
    Dernier message: 04/04/2013, 16h18
  2. Configuration Port E d'un PIC18F4550
    Par chminds dans le forum Électronique
    Réponses: 0
    Dernier message: 28/03/2009, 17h32
  3. Gestion entrée/sortie sur port parallèle avec VBA
    Par invitea97b4264 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 21/03/2009, 16h06
  4. Port entrée/Port sortie via I²C
    Par invitef1f90160 dans le forum Électronique
    Réponses: 40
    Dernier message: 21/12/2008, 06h50
  5. PIC en language C : pin d'un port en entree ...??
    Par guilbut dans le forum Électronique
    Réponses: 6
    Dernier message: 02/09/2008, 08h05
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...