Go Down

Topic: Manipulation de port (Read 1 time) previous topic - next topic

schizophrene

Salut à tous!

Dans le but d'écrire une nouvelle librairie pour mes chers petits TLC5940, je cherche à connaitre un maximum sur la manipulation de port, domaine où je sèche encore...

Quelqu'un connaitrait-il un tutoriel, en français de préférence (au pire, l'anglais ne me fait pas peur)?

Merci d'avance pour vos réponses :)


schizophrene

Salut fdufnews, merci pour la réponse.

Je connais très bien le premier lien, je m'en suis énormément servi jusqu'à présent.
Seulement, comme j'aimerai utiliser une BlackWidow 1.0, qui utilise un module wifi SPI, et que les TLC5940 utilisent aussi le SPI (d'où conflit, je n'ai pas réussi à faire fonctionner les 2 en même temps), je me tourne vers ShiftOut() pour pouvoir utiliser d'autres broches.
La manipulation de port me permettrait de gagner du temps, par rapport à un digitalWrite() (la librairie TLC5940 n'utilise que ça, et je veux la comprendre totalement).

Donc, merci pour le deuxième lien :)

bouault

En français : http://arduino.cc/fr/Main/PortManipulation
Jacques
arpschuino.fr

skywodd

Salut,


Seulement, comme j'aimerai utiliser une BlackWidow 1.0, qui utilise un module wifi SPI, et que les TLC5940 utilisent aussi le SPI (d'où conflit, je n'ai pas réussi à faire fonctionner les 2 en même temps), je me tourne vers ShiftOut() pour pouvoir utiliser d'autres broches.

Le SPI c'est un bus, donc tu doit pouvoir faire communiquer deux modules SPI sur un même bus SPI en gérant correctement les broches SS (slave select) des différents modules. Par contre j'ai pas regardé si la lib Wishield activé/désactivé le module wifi pour libérer le bus SPI lorsque qu'elle n'tilise pas le module wifi :~
Ps: shiftOut c'est pratique mais trés lent ...


La manipulation de port me permettrait de gagner du temps, par rapport à un digitalWrite() (la librairie TLC5940 n'utilise que ça, et je veux la comprendre totalement).

Si la manipulation de port est pas ton fort regarde du coté de la librairie DigitalWriteFast ;)
L'avantage c'est que tu aurait qu'as faire un remplacer de pinMode par pinModeFast, digitalRead par digitalReadFast et digitalWrite par digitalWriteFast ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

schizophrene

Merci skywodd pour ta réponse :)

Donc, ok, le SPI est un bus acceptant plusieurs esclaves. Mais comment je fais pour sélectionner celui que je veux?

Ensuite, disons que je joue une animation sur mon TLC5940 (disons une phrase, ce qui peut durer pas mal de secondes), et que je veuille prendre le contrôle du module Wifi (donc de ma platine, pour changer d'animation for example), j'ai quoi comme solution?

skywodd


Donc, ok, le SPI est un bus acceptant plusieurs esclaves. Mais comment je fais pour sélectionner celui que je veux?

Il faut mettre la broche SS du module avec qui tu veut parler à LOW et les broches SS de tout les autres modules à HIGH.
Les périphériques SPI ne prenne en compte les info sur le bus SPI que si leur broche SS est à LOW.


Ensuite, disons que je joue une animation sur mon TLC5940 (disons une phrase, ce qui peut durer pas mal de secondes), et que je veuille prendre le contrôle du module Wifi (donc de ma platine, pour changer d'animation for example), j'ai quoi comme solution?

J'ai jamais utilisé de TLC5940 mais je suppose qu'il n'y a pas besoin d'envoyé continuellement l'info à afficher ?
Une fois l'info envoyé le TLC5940 l'affich jusqu'a ce qu'on lui donne une nouvelle info non ?
Si c'est le cas il te suffit de faire un systéme qui actualise l'affichage puis qui rend la main au module wifi.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

Go Up