Ich möchte einen Atmega128 so programmieren, dass er ein (evtl. sogar zwei) DMX-Signal empfängt, weiterverarbeitet und dann weiter sendet. Das Senden funktioniert auch schon, das empfangen auch schon fast. Meine Frage/Problem: Da das Emfangen durch Interrupts funktioniert unterbricht es doch ständig das Senden. Kann dann durch das ständige Empfangen und Weiterverarbeiten, das Senden gestört werden, so dass beim gesendeten DMX-Singal lange Pausen zwischen den einzelnen DMX-Werten liegen? Dabei würde doch dann die Wiederholfrequenz darunter leiden? Kann das zum Problem werden oder gibt es da Abhilfe? Gibt es beim Atmega128 soetwas wie Interrupt-Priorität, und wenn ja, wie stelle ich sie in diesem Fall ein? Wer hat schonmal mit DMX-Signalen gearbeitet und kann mir helfen?
Hallo Bernd, willst du das empfangene Signal auch verändern? Oder nur an ein weiteres Gerät weiterleiten? Soweit ich mich erinnere ist die max. Länge des RESET Signals 1s, ebenso MARK zwischen Frames, zwischen Packeten und zwischen RESET und Startbyte. Es kann jedoch vorkommen, das schlecht Programmierte Geräte mit untypischen Pausen Probleme haben. Falls du das Signal nur weiterleiten willst, einfach XLR In und XLR Out miteinander verbinden und dazwischen das Signal abgreifen. Oder auch (z.B. mit MAX485) empfangen, das TTL Signal einmal auf deinen Mega128 (besser noch über schnellen Optokoppler) und paralell auf einen MAX485 als Sender weiterleiten. Hat jedoch den Nachteil, das wenn deine Schaltung keine Spannung bekommt auch nicht weitergesendet wird (z.B. über Relaiskontokt Notbetrieb). mfg gregor
Nein ich will schon das empfangene Signal verändern und anschließend wieder senden...
kannst du mal deinen code und oder schaltbilder posten? Ich würd gern nen DMX in für den PC haben. Dort dann auswerten und z.b. speichern. Hab aber probleme das signal zu empfangen und auf den rs232 zu packen. Mfg der thomas
www.digital-enlightenment.de Michael hat IMHO das ultimative DMX-Dongle verbrochen - damit sollte Thomas glücklich werden. Ansonsten hat glaube ich DMX4All ein DMX-Gateway im Programm. Als open project ist mir so etwas unbekannt. (Den meisten incl. mir reicht ein galv. trennender booster vollauf. Das bischen mergen rechtfertigt den Aufwand nicht...) Viele Grüße, Hendrik
Hallo Bernd, das ist definitiv möglich und auch nicht besonders kompliziert. Ich habe das so gelöst: DMX empfangen über USART und Interrupt. DMX umwandeln und senden im Hauptprogramm. Vorteile: ein Byte, das über die USART reinkommt, wird sofort verarbeitet und gibt die USART wieder frei. Umwandeln und Senden ist zeitlich unkritisch, wenn Pausen zwischen den einzelnen Bytes entstehen stört das keinen. Die Pausen dürfen laut DMX-Spezifikation nur nicht länger als eine Sekunde werden, dann wird das Signal für ungültig erklärt. Wenn Du nicht allzuviel rumrechnen willst, würde ich sogar behaupten, 8MHz reichen völlig aus. Mein Mega32 sendet DMX, empfängt DMX und unterhält sich spielend noch mit einem Computer und einem weiteren uC, nebenbei. Bei 8MHz Takt. Und ich habe im Sendekanal immer noch die vollen 44,...Hz Wiederholfrequenz. Gruß, Sebastian
www.digital-enlightenment.de Damit könnte ich mich auch anfreunden. Hammer teil. Hat das schonmal jemand nachgebaut? Ich bin nur besitzer eines MiniDMX. Kann ja leider nur empfangen und rs232 schnittstellen hat man auch maximal 2 am PC. Also wenn man keine erweiterungskarten hat natürlich. Hat das ding schonmal jemand nachgebaut? Mein Problem ist die fertigung der Platine. Kann nicht ätzen oder fräsen. Mfg der gregor
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.