User Tools

Site Tools


electronique:msp430:entrees_sorties

Entrées/Sorties

L'utilisation des entrées/sorties sur le MSP430 étant un peu différente des Atmels AVR, voici un petit mémo:

PxSEL - Sélectionne les pins a assigner aux entrées/sorties (GPIO) ou aux périphériques internes (ADC, timer, etc..)

P1SEL = 0x03; // (0000 0011) P1.0 et P1.1 assignés respectivement à l'ADC A0 et au timer TA0; P1.3-P1.7 pins GPIO/entrée-sortie.

PxDIR - Donne la direction du pin. En sortie (1) (qui peut être “activée” ou non) ou en entrée haute impédance (0)

P1DIR = 0x05; // (0000 0101) P1.0 et P1.2 en sortie (ex: commander LED, transistor, etc...);  P1.1, P1.3-P1.7 en entrée (bouton poussoir, etc..).\\

Par défaut (au RST du µC), tous les pins en entrée


PxIN - Contient l'état de chaque pin (0 ou 1 si il est “alimenté”)

if (0x02 & P1IN)
 //bla bla

PxOUT - définit l'état d'un pin de sortie. 0→GND, 1→Vss (3.3V, dans notre cas)

P1OUT ^= 0x03; // - change la sortie des pins 0 et 1.

PxREN - Active les résistances de pull-up ou pull-down. Ne définit pas si c'est un pull-up ou pull-down (utiliser P1OUT)!
Ensuite, il y a plus qu'à regarder le résultat dans le registre PxOUT.
Utile pour les boutons-pousoirs reliés à la masse.

P1REN |= 0x10; // P1.4 en résistance de pull.
P1OUT |= 0x10; // Assigne la résistance de pull de P1.4 en pull-up

Trucs utiles (et logiques :p)

Allumer une sortie sans affecter les autres:

PxOUT |= BITx;

Changer l'état d'une sortie sans affecter les autres:

PxOUT ^= BITx;

Éteindre une sortie sans affecter les autres:

PxOUT &= ~BITx;

(~ ⇔ NOT)

Discussion

Enter your comment. Wiki syntax is allowed:
BGRTF
 
electronique/msp430/entrees_sorties.txt · Last modified: 2012/07/11 20:10 by frank