[Programmation] Question concernant le langage C et les PICs (PORT,TRIS,LAT)
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Question concernant le langage C et les PICs (PORT,TRIS,LAT)



  1. #1
    invite41cfec95

    Question Question concernant le langage C et les PICs (PORT,TRIS,LAT)


    ------

    Bonsoir,


    Je suis débutant dans la programmation des PICs (18F4550), à vrais dire je galère.. Je m'excuse d'avance car par la suite je pense ne pas utiliser les thermes exactes ce qui pourrait faire tirer les cheveux de certains.

    x=A ou B ou C ou D ou E -> port

    D'après ce que j'ai compris, TRISx permet d'initialiser le port en question en entrée/sortie. en ce qui concerne les PORTx, c'est pour pouvoir utiliser des valeurs de ports ( allumer des LEDs ).
    Dites moi si je me trompe.

    De plus, je ne comprends pas à quoi sert LATx ( ca sert à mettre des valeurs sur tout le port non? par exemple éteindre toutes les LEDs avec LATx=0x00)

    Est-ce qu'on a seulement besoin d'initialiser à l'aide de TRISx pour pouvoir utiliser les PORTx ?

    Est-ce équivalent d’écrire PORTA=0x01 ( censé allumé la 1ere LED du port A ) et PORTA.RA0=1 ?

    Que signifie PORTx=0 ?

    Quel est la différence entre TRISx=0x00 et TRISx=0x03 par exemple ?

    Merci à ceux/celui qui va/vont pouvoir m'aider à mieux comprendre!

    -----

  2. #2
    JPL
    Responsable des forums

    Re : Question concernant le langage C et les PICs (PORT,TRIS,LAT)

    Merci de ne pas faire de doublons.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  3. #3
    antek

    Re : Question concernant le langage C et les PICs (PORT,TRIS,LAT)

    Citation Envoyé par JaimeLeChocolat Voir le message
    D'après ce que j'ai compris, TRISx permet d'initialiser le port en question en entrée/sortie. en ce qui concerne les PORTx, c'est pour pouvoir utiliser des valeurs de ports ( allumer des LEDs ).

    De plus, je ne comprends pas à quoi sert LATx ( ca sert à mettre des valeurs sur tout le port non? par exemple éteindre toutes les LEDs avec LATx=0x00)

    Est-ce qu'on a seulement besoin d'initialiser à l'aide de TRISx pour pouvoir utiliser les PORTx ?

    Est-ce équivalent d’écrire PORTA=0x01 ( censé allumé la 1ere LED du port A ) et PORTA.RA0=1 ?

    Que signifie PORTx=0 ?

    Quel est la différence entre TRISx=0x00 et TRISx=0x03 par exemple ?
    Je connais pas C mais je répond quand même . . .

    1) C'est pour placer le port en entrée ou sortie, led ou pas led

    2) LAT pour imposer une valeur et PORT pour lire l'état d'une pin
    (voir les procédures de lecture/écriture dans les PORTx)

    3) Il faut également paramétrer les registres ANSELx

    4) Oui, mais il vaut mieux utiliser LATA

    5)

    6) Ne met pas en entrée/sortie les mêmes pin !

  4. #4
    invite41cfec95

    Re : Question concernant le langage C et les PICs (PORT,TRIS,LAT)

    Bonjour,

    Oui désolé pour le doublon..
    Merci de m'avoir répondu antek, donc en gros le LAT permet d'initialiser le port à 0 ou 1 c'est ca ?

    Merci et bonne journée

  5. A voir en vidéo sur Futura
  6. #5
    antek

    Re : Question concernant le langage C et les PICs (PORT,TRIS,LAT)

    Citation Envoyé par JaimeLeChocolat Voir le message
    . . . donc en gros le LAT permet d'initialiser le port à 0 ou 1 c'est ca ?
    Oui.
    Mais ce n'est pas une "initialisation", on change l'état quand on veut.

  7. #6
    spown

    Re : Question concernant le langage C et les PICs (PORT,TRIS,LAT)

    Bonjour/bonsoir est bienvenue sur FUTURA,

    Si tu travailles avec un PIC qui contient le registre LATx, tu dois l'utiliser pour écrire sur les pins afin d’éviter le problème RWM. Et pour lire à partir d'une pin tu dois utiliser PORTx. ( voir le diagramme I/O du datasheet )

    @ antek

    ANSELx n'existe pas dans 18F4550, il faut ADCONx pour spécifier si c'est digital ou analog.

    PORTA = 0x01; ou PORTA = 0b00000001; ou PORTA.RA0=1; c'est du kif kif. La dernière expression vient de la structure du genre,


    Code:
    typedef struct PORTA {
      unsigned RA0:1;
      unsigned RA1:1;
      unsigned RA2:1;
      unsigned RA3:1;
      unsigned RA4:1;
      unsigned RA5:1;
      unsigned RA6:1;
      unsigned RA7:1;
    
    } PORTA;
    PORTx=0; veut dire tout les pins de ce port sont des sorties.

  8. #7
    spown

    Re : Question concernant le langage C et les PICs (PORT,TRIS,LAT)

    Correction :

    PORTx=0; veut dire mettre tout les pins de ce port à 0V.

  9. #8
    invite41cfec95

    Re : Question concernant le langage C et les PICs (PORT,TRIS,LAT)

    D'accord c'est maintenant plus clair merci à vous !


    Bonne soirée

Discussions similaires

  1. Postez ici vos questions concernant le langage Latex de ce forum
    Par Médiat dans le forum Mathématiques du supérieur
    Réponses: 47
    Dernier message: 11/09/2023, 08h25
  2. Langage C : donner un nom à un PORT
    Par invite3570b5f7 dans le forum Électronique
    Réponses: 6
    Dernier message: 27/12/2010, 11h52
  3. Question concernant le langage HTML
    Par invitec63cbff7 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 8
    Dernier message: 01/02/2010, 16h06
  4. Question pics
    Par inviteec8d1841 dans le forum Électronique
    Réponses: 6
    Dernier message: 14/07/2009, 17h05
  5. langage pour les pics
    Par inviteff7a2099 dans le forum Électronique
    Réponses: 22
    Dernier message: 17/07/2008, 21h25
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...