Pages: [1]   Go Down
Author Topic: Écrire en parallèle sur le port digitale  (Read 504 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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..
Logged

Offline Offline
God Member
*****
Karma: 3
Posts: 676
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonsoir RICOprod
Regarde ce lien ,peut-etre qu'il va te donner de l'eau à ton moulin  smiley-lol  smiley-wink

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
« Last Edit: December 14, 2011, 01:42:13 pm by AlienArea51 » Logged

The truth is elsewhere !!

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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..   
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut !

Et tu devrais également avoir besoin de ça : Bitshift smiley-wink
Logged


France
Offline Offline
Faraday Member
**
Karma: 52
Posts: 5341
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Et tu devrais également avoir besoin de ça : Bitshift smiley-wink
Il y aussi : http://en.wikipedia.org/wiki/Bitwise_operation et : http://www.arduino.cc/en/Reference/PortManipulation qui peuvent être intéressant à lire.
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.. 
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 !!


« Last Edit: December 16, 2011, 05:24:35 am by RICOprod » Logged

Pages: [1]   Go Up
Jump to: