Go Down

Topic: Écrire en parallèle sur le port digitale (Read 616 times) previous topic - next topic

RICOprod

Bonjour tout le monde,
je voulais savoir si quelqu'un pouvait m'aider : je possède une arduino mega 1280, et j'aimerais pouvoir « écrire » un mot binaire sur différentes sorties du port digitale. En fait j'ai une variable binaire de 4 bits et je voudrais pouvoir « écrire » chaque bits de cette variable sur 4 sorties différentes.
Exemple :
   x=0010     (en réalité x n'est pas fixe)
   void mafonction(x)
   écrire 0 sur la broche 3             
   écrire 1 sur la broche 4
   écrire 0 sur la broche 5
   écrire 0 sur la broche 6

Je sais pas si c'est très compréhensible.. j'ai essayé pleins de trucs mais sa marche pas et j'ai plus beaucoup d'idées.( et je suis pas très doué..)
Un petit coup de pouce serait bienvenue..

AlienArea51

#1
Dec 14, 2011, 07:32 pm Last Edit: Dec 14, 2011, 07:42 pm by AlienArea51 Reason: 1
Bonsoir RICOprod
Regarde ce lien ,peut-etre qu'il va te donner de l'eau à ton moulin  XD  ;)

http://arduino.cc/forum/index.php/topic,77460.0.html
et ça :
http://arduino.cc/en/Hacking/PinMapping2560
http://www.arduino.cc/en/Reference/PortManipulation
Bon courage
William
The truth is elsewhere !!

RICOprod

merci AlienArea51 pour tes infos, je pense que la solution est en effet d'utiliser les registres de port, je vais voir si je peux me servir l'opérateur bit à bit "(|)" pour comparer et "écrire" sur le port..   

SesechXP

Salut !

Et tu devrais également avoir besoin de ça : Bitshift ;)
Julien - www.idreammicro.com

skywodd


Et tu devrais également avoir besoin de ça : Bitshift ;)

Il y aussi : http://en.wikipedia.org/wiki/Bitwise_operation et : http://www.arduino.cc/en/Reference/PortManipulation qui peuvent être intéressant à lire.
Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

RICOprod

Merci tout le monde,ça remonte le morale! Il y a truc que je pige pas : c'est quoi la différence entre la mega1280 et la mega 2560 ? j'ai l'impression que c'est la même pin map.. 

SesechXP

Les ATmega1280 et 2560 sont les mêmes à la mémoire flash près : le 1280 en a 128 ko alors que le 2560 en a 256 ko. Donc ils ont bien le même pin mapping.
Julien - www.idreammicro.com

RICOprod

#7
Dec 16, 2011, 11:23 am Last Edit: Dec 16, 2011, 11:24 am by RICOprod Reason: 1
La solution était tellement simple... j'avais pas vue que les mega avait plusieurs ports sur 8bits qui n'interfèrent pas sur d'autres paramètres(liaisons séries...):
PORT A ===> pin 22 à 29
PORT C ===> pin 30 à 37
PORT L ===> pin 42 à 49
Du coup le truc trop compliqué que je cherchais se résume à 4 lignes:
DDRC =0xFF
DDRL =0xFF

PORTC = X1  
PORTL = X2

:smiley-roll-sweat: ...

Merci tout le monde pour toutes ces infos bien pratiques !!



Go Up