Après avoir extrais tous les fichiers en /hardware/libraries/DmxSimple, je lance Arduino ; problème, lorsque j'essaye de compiler ce simple code :
#include <DmxSimple.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Message d'erreur :
Arduino : 1.5.7 (Windows 8), Carte : "Arduino Due (Programming Port)"
C:\Users\Flo\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp:6:20: fatal error: avr/io.h: No such file or directory #include <avr/io.h>
^
compilation terminated.
L'arduino DUE n'est pas basée sur ATMega, et le code ne passera pas.
L'article date de 2009, avant la sortie du DUE, ce qui fait qu'il ne mentionne pas l'incompatibilité avec les Arduino basées sur ARM.
J'ai essayé avec un Arduino Uno, La librairie fonctionne ; je ne sais toujours pas pourquoi ça ne fonctionne pas avec mon Arduino Due, si vous avez des réponses. (ou du moins une autre librairie).
Bref sinon, j'aurais voulu savoir comment augmenter le nombre de channels à 512 (avec DmxSimple, on peut seulement jusqu'à 10, non?).
Le problème c'est que la DUE est un ARM, donc pas la même architecture donc le code bas niveau n'a rien à voir. Et ici particulièrement puisqu'il y a gestion des timers directement.
Donc en solution tel quel visiblement il n'y a rien (en tout dmxsimple c'est sûr c'est pas prévu pour la DUE).
Merci de tes réponses, cela me semble bien compliqué ; débutant en Arduino, je ne vois pas quelles infos je vais devoir modifier ; je pense que je vais devoir trouver une autre solution. :~
J'ai regardé vite fait la librairie DMX et si j'ai bien compris le principe du DMX, pour moi cette librairie est inutile en l'état pour la DUE.
Elle utilise un timer parce qu'elle fait une UART soft. La DUE possédant 4 ports série il n'y a aucun intérêt à utiliser une UART soft. Il suffirait d'utiliser l'un des ports série en le configurant à 250kbauds, 8bits, 2 bits de stop, pas de parité pour établir une communication sur le bus DMX. Le seul truc à faire "à la main" serait la gestion du début de trame DMX soit un break + un petit délai.
le DMX c'est du RS 485, donc en soit il faut en effet juste gérer la couche soft.
L'utilisation du soft n'est pas anodine à mon avis (d'ailleurs écris en asm) : le DMX c'est du 250 kbits/s, je ne sais plus combien le 328 peut tenir en série, mais je crois que c'est déjà trop