Forum: Compiler & IDEs DMX-Receiver


von Kai Markus Tegtmeier (Gast)


Lesenswert?

Hallo, allerseits!

Hat schon mal jemand versucht, mit dem AVR ein DMX-Signal zu dekodieren
und den Quelltext in C geschrieben? Ich habe zwar einen eigenen
Quelltext entwickelt, habe aber zur Zeit keinen DMX-Sender zur
Verfügung und kann mein Programm nicht austesten.

Vielen Dank im Voraus für Eure Antworten!

KMT

von Stefan (Gast)


Lesenswert?

Gehe mal auf "suchen" und gib DMX ein ...

Stefan

von Kai Markus Tegtmeier (Gast)


Lesenswert?

Schon mal getan, aber entweder waren es Quelltexte in Assembler oder
Quelltexte für einen DMX-Sender. Ich bräuchte aber zum Anpassen einen
Quelltext in C für einen DMX-Empfänger. Notfalls ließe sich das
sicherlich auch in Assembler programmieren, aber ich bin halt
C-verwöhnt...

Viele Grüße

KMT

von Stefan (Gast)


Lesenswert?

Also einen Code für den AVR kann ich Dir leider nicht geben. Ich habe
mal einen für den 8051 geschrieben, ist aber schon ne Weile her und das
war auch in Assembler.

Mit dem normalen UART kannst Du Dir aber leicht einen DMX-Empfänger
bauen. Den Brake kannst Du erkennen, indem Du "Framing Error"
auswertest. Wenn das empfangene Byte 00h war, dann wars der Brake. Dann
nur noch auf das Start warten, dann die eingehenden Bytes zählen und ab
Deiner DMX-Adresse n Bytes in eine Tabelle schaufeln.

Stefan

von Markus (Gast)


Lesenswert?

Hallo Kai.
Ich suche einen DMX Code in C.
Würdest du mir deinen zur verfügung stellen?
Wäre super, Gruß Markus.

von Max Roderer (Gast)


Lesenswert?

Hallo Markus hast du den Quellcode des Empfängers in C bekommen?
Ich suche nämlich auch einen c - quellcode für einen DMX-Empfänger.

mit freundlichen grüßen
Max

von Michael Wilhelm (Gast)


Lesenswert?

#pragma vector = 0x48
__interrupt void USART0_RXD_isr(void)
{

  if (UCSR0A & (1<<DOR0))               //Overrun
   {
      dmx_empfangs_zeiger = 515;            //Fehler-Flag setzen
   }
   if (dmx_empfangs_zeiger > 512)          //Zeiger auf DMX-Feld zu groß
   {
      dmx_empfangs_zeiger = 515;            //Fehler-Flag setzen
   }
  if (UCSR0A & (1<<FE0))                 //FE-Bit
   {
     if (UDR0 == 0)                    //Datenregister leer?,wenn ja ist 
es ein
Break
     {
       dmx_empfangs_zeiger = 0;          //DMX-Zeiger setzen
     }
     else
     {
       dmx_empfangs_zeiger = 515;          //Bei Fehler Zeiger auf 
Nirvana
setzen
     }
   }
   else
   {
    dmx_werte[dmx_empfangs_zeiger++] = UDR0;

  }
  fehler = UDR0;

}
IAR Systems
ATM 64
dmx_empfangs_zeiger ist kein richtiger Zeiger, sondern nur ein unsigned
int als Arrayzähler.
fehler ist ein unsigned char, weil, um das Interruptflag zu löschen
immer UDR ausgelesen werden muss.
Die Werte werden in ein 516 Byte großese Array geschrieben.

Bei Unklarheiten bitte meldden.

MW

von Alex (Gast)


Lesenswert?

Hallo Stefan
kannst du mir mal den Quelltest für den 8051 schicken für den empfang 
von DMX daten das würde mir echt sehr helfen.

Ich kann auch mit Asembler was anfangen ich muß ein Projetzt mit dem LPC 
900 machen.

Danke Gruß Alex

von Master S. (snowman)


Lesenswert?


von Falk B. (falk)


Lesenswert?


von Alex (Gast)


Lesenswert?

Danke für die schnelle antwort nur leider ist das ja kein Quelltext für 
einen 8051 sondern für einen AVR

hat niemand einen Ouelltext für einen 8051 das würde mir sehr viel 
helfen

Danke

Grüße Alex

von Stefan K. (_sk_)


Angehängte Dateien:

Lesenswert?

Habe mal den alten Kram rausgesucht.
Das Ding ist ca. 20 Jahre alt, genau Bescheid weiss ich über die 
Einzelheiten nicht mehr, habe auch keine Ahnung, wie damals der 
Assembler hiess.

Der Code, der für Dich interessant ist, steht unter "SIO-Handler".

Wenn ich mich richtig erinnere, lief das Teil mit 8Mhz auf einem 80517.

Um bei dem Takt noch schnell genug zu sein, sind ein paar Register 
exklusiv für den SIO-Interrupt reserviert, also Vorsicht, die darfst Du 
nirgends anders verweden!

Gruß, Stefan

von Stefan K. (_sk_)


Angehängte Dateien:

Lesenswert?

scheint nur ein File auf einmal möglich zu sein ...

von Alexander B. (lpc900)


Lesenswert?

Hallo ,
danke für die antwort naja ich bin da noch immer ziemlich am rumrudern 
mit dem DMX Protokal . Für meinen 8051 aber bei dir sind auch ein paar 
gute ideen drin danke.

Gruß Alex

von Alexander B. (lpc900)


Angehängte Dateien:

Lesenswert?

Fertig :-)

von Eddi (Gast)


Lesenswert?

Ich weis der Beitrag ist schon ein paar Jahre alt allerdings habe ich 
ihn gerade entdeckt und es würde mich brennend interessieren woher du 
solche Linsen für die LEDs bekommen hast?? hab nämlich genau das selbe 
geplant :D

von Dirk (Gast)


Lesenswert?

Hi,

must mal hier schauen, ich weis aber nicht ob er dies ArtLinsen hat.

http://www.wayjun.com/index.php?main_page=index&cPath=21&sort=20a&page=1

Dort kaufe ich meinen LED's immer.

MfG

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
Noch kein Account? Hier anmelden.