Forum: Mikrocontroller und Digitale Elektronik C Programm für DMX Empfang


von karsten (Gast)


Lesenswert?

Hi,
hat vo euch jemand ein fertiges C Programm für DMX Empfang
ich bin Neuling auf diesem Gebiet
und möchte mich in dieses Thema einarbeiten?
MFG

von tom (Gast)


Lesenswert?

Sowas suche ich auch, für den ATMega32

von DeLux (Gast)


Lesenswert?

ich bezweifle, dass es etwas passendes für einen anfänger ist!
auch fehlen angaben der hardware(z.B. uC)

von _CH_ (Gast)


Lesenswert?


von tom (Gast)


Lesenswert?

C und ATMega32 sind doch eindeutig, oder etwa nicht?

von Rahul (Gast)


Lesenswert?

Könntest du mir das schnell auf den Tiny12 umprogrammieren, Christian?
Ich habe auch keine Lust, mich durch die Programme anderer Leute zu
kämpfen. ;)
Für PICs und ARMe könntest du das dann auch gleich machen...
@Tom: Merkst du was?

von tom (Gast)


Lesenswert?

@Rahul wenn Du lesen könntest wärst Du klar im Vorteil!!! Die Frage
lautete, ob jemand ein DMX-Empfang in C schon programmiert hat. Und
nicht ob es denn jemand umschreiben könnte. Und auf eine Anfrage nach
C-Code mit einem Assembler-Code zu antworten wird der Frage nicht
gerecht. In der Schule hättest Du wohl jetzt 0 Punkte bekommen.

von mr.chip (Gast)


Lesenswert?

@tom: Oh mann, hier drin antwortet erstmal jeder freiwillig! Niemand ist
verpflichtet, 'Punkte' zu sammeln oder irgendwem irgendetwas zu helfen
oder zu zeigen. Anspruch auf etwas hat hier jedenfalls niemand.

Und wenn du anstatt des gewünschten C-Codes einen Assembler-Code
bekommst, dann sei doch zufrieden. Immerhin hat sich jemand darum
geschert und du hast vielleicht sogar eine Grundlage bekommen, auf die
du bauen kannst. Grundsätzlich musst du nämlich dein Problem selbst
lösen, im Forum kannst du vorbeikommen, damit dir jemand eventuell ein
bisschen know-how schenkt - und nicht, dass dir jemand die Arbeit
erledigt!

Und wenn du nicht nur lesen, sondern auch noch ein bisschen
interpretieren könntest, dann würdest du Rahul auch verstehen.

Sorry, aber du bist wieder mal ein schlechtes Beispiel für einen
Einsteiger. Herkommen, und meinen man sei im Fünf-Sterne-Hotel.

von _CH_ (Gast)


Lesenswert?

@mr.chip
Danke!

von tom (Gast)


Lesenswert?

@alle die der deutschen Sprache nicht mächtig sind:
Mein Aussage war, dass ich C-Quellcode suche der sich mit DMX-Empfang
beschäftigt, nicht mehr und nicht weniger. Also für alle die der Logik
nicht mächtig sind, ich suche keinen Assemblercode! Ich fordere auch
niemanden dazu auf welchen für mich zu schreiben!
Assemblercode bringt mir nicht's da ich den nicht verstehe! Und für
alle die sich angegriffen fühlen, lest mal das was ich geschrieben
habe, ich habe keinerlei Unterton benutzt, so dass man sich eigentlich
nicht angegriffen oder verarscht vorkommen müsste, wenn ihr sowas in
meinen Text reininterpretiert dann ist das euer Problem! Und langsam
hab ich auf euer Forum echt keinen Bock mehr, andauernd werden einem
die Wörter im Mund rum gedreht und irgendwelche Sachen in Aussagen
interpretiert die gar nicht da stehen!

von Rahul (Gast)


Lesenswert?

Dann sollte Christians Beitrag am besten gelöscht werden.
Dein nicht vorhandener Unterton klang ziemlich pissig. Das klang
ziemlich danach, dass jemand die Lösung auf einem goldenen Tablett
gereicht haben möchte.
Ist ja nun schade, dass Christian dir weder eine Lösung für den Mega32
noch in C geliefert hat / liefern konnte, aber er hat zumindest
versucht, eine Hilfestellung zu geben.
Vielleicht hilft dir diesert Link ja weiter:
http://www.google.de/search?hl=de&q=%2BAVR+%2BDMX+%2Bmega32+%2BC&meta=

Schönen Tag noch.

von mr.chip (Gast)


Lesenswert?

> Dein nicht vorhandener Unterton klang ziemlich pissig.

Sehr pissig.

Es sagte dir auch niemand, dass du mit dem Assembler-Code etwas
anfangen müsstest. Er wurde nur als Input gebracht. Vielleicht lesen ja
auch noch andere mit, die spontan auf das Thema DMX gestossen sind und
den Code vielleicht durchaus interessiert anschauen.

Da bekommt man eine gutgemeinte Hilfe und weiss nichts anderes als
herumzumotzen. Hört sich wirklich an, als unterstelltest du dir ein
Recht darauf, deine Fragen auf dem Silbertablett beantwortet zu
bekommen.

Als ebenfalls Einsteiger regt mich dein Verhalten unglaublich auf, da
wird man dann wieder mit 'N00b' oder 'Separates Forum für Anfänger'
konfrontiert.

von Stefan Sczekalla (Gast)


Lesenswert?

... Assembler ist doch fast C ...

wo ist da das Problem - und wenn Du es nicht verstehtst - dann lerne es
halt.

( Dazulernen ha imho bisher noch keinem wirklich geschadet )

Was machst Du denn wenn Du C-Code bekommst , der auf den "falschen"
Prozessor zugeschnitten ist ?

Grüße,

Stefan

von Sven Müller (Gast)


Lesenswert?

DMX Empfang ist wirklich kein Hexenwerk, das geht wunderbar in C mit
naja ich sage mal weniger als 50 Zeilen Code.
Stell dochmal konkrete Fragen.
Wie setzt du die Startadresse?
Wie viele Kanäle willst du empfangen?
Was willst du danach damit machen?

von Mark H. (haemi)


Lesenswert?

Bleibt doch mal geschmeidig. Entweder man kann dem Fragesteller helfen,
oder nicht. Im zweiten Fall kann man genauso gut einfach nix posten.
Aber sich den ganzen Thread lang nur über die Fragestellung aufzuregen,
finde ich auch wenig konstruktiv.

Also... hier die Lösung auf dem Silbertablett... ;)

DMX-Empfang ist über UART-RX-Interrupt mit einer kleinen State Machine
ganz einfach zu realisieren. Wichtig ist, daß die CPU schnell genug
getaktet ist (250kbps sind kein Zuckerschlecken) und vor allem, daß die
ISR höchste(!) Priorität hat (d.h. in allen anderen ISR muß die
UART-RX-ISR sofort freigeschaltet werden).

Das ganze hab ich realisiert im "Diamond" Dimmer: Die
Firmware-Releases gibt's hier:
http://sourceforge.net/project/showfiles.php?group_id=80137&package_id=116962

Ganz am Ende der semitone_diamond.c befindet sich die entsprechende
ISR. Das Programm ist in C geschrieben, und läuft auf dem ATmega32 bei
16MHz.

Ob jemand was mit meinem Code anfangen kann, steht auf einem anderen
Blatt. ;)

Mark

von Mark H. (haemi)


Lesenswert?

...ist übrigens der 7. Link, den Google bei "dimmer dmx atmega32"
ausspuckt... soviel sei mir als Kritik an den Fragesteller doch noch
erlaubt. ;)

Mark

von Henne (Gast)


Lesenswert?

Es wäre außerdem nett, in Zukunft hier die Suche zu bemühen:

Mit 30s Aufwand, hättest Du bemerkt, dass deine Frage hier ca.
monatlich behandelt wird.

JEDES MAL linkt jmd. auf meine Seiten (durch die Logs lande ich dann
hier), marc linkt derweil den semitone rein, ich hinterlass meinen
Standardpost, dass ASM in diesem Fall einmal performanter und ähnlich
abstrakt wie C ist (da nur simple state machine).
Zum Abschluss gibt es noch einen Überblick über diverse Varianten der
machines und deren Vorteile - danach kommt nix mehr.

Ich habe diesen 'täglich grüßt das Murmeltier'-Kram jetzt 5-6Mal
durchgezogen. Für die Ergebnisse bitte suchen.

Hendrik

von Henne (Gast)


Lesenswert?

@marc:

Ich war von dem Diamond bislang ganz angetan - bitte überlege Dir aber
irgendwann mal die Grenze zwischen HAL und Overkill. Der Diamond wirkt
irgendwie allmählich etwas aufgeblasen im Vergleich zu anderen
Dimmersourcen die bei mir rumliegen - keine Kritik; bitte einfach mal
drüber schlafen;-)
Viele Grüße, Hendrik

von Mark H. (haemi)


Lesenswert?

Hallo Henne,

welche Teile - meinst Du - sollten auf einer HAL aufsetzen?
Aufgeblasen ist der Code, das stimmt. Vor allem, da es eine große
C-Datei ist. Wollte das schon ändern, aber es kostet zuviel Zeit und
bringt nicht wirklich etwas.
Aufgeblasen ist er aber auch, weil der Dimmer mehr Features hat, als
viele andere. Die Feature-Liste ist nicht gerade kurz, und alles steckt
in einem einzigen Controller und in einer einzigen Firmware - der
Hardwareaufwand ist daher minimal. Für den, der's nachbauen will, und
sich nicht um die Interna der Firmware schert, ist das ideal. Was nicht
heißt, daß der Code unbegreifbar wäre.
Die Features ergeben sich ganz einfach daher, daß er als
Standalone-Gerät quasi für den Wohnbereich konzipiert ist. D.h. die
Intelligenz steckt eben nicht in irgendeinem Gerät, das ihm per DMX
sagt, was er machen soll, sondern er unterstützt Szenen, Crossfading,
Timer, etc. schon von sich aus. Das DMX ist nur das i-Tüpfelchen. :)

Für Verbesserungsvorschläge betreffend Funktionalität oder
Programmierstil bin ich jederzeit dankbar.

Mark

von Henne (Gast)


Lesenswert?

@Mark:
Ich schau mir die sourcen heute Abend noch mal an und schreib dann eine
Mail (in Foren rechtfertigt man sich meistens eher, als wirklich
nachzudenken - ich erwische mich jedenfalls häufiger dabei...). Ich
hatte u.A. einen CRC-Check des Flashs im Kopf ohne einen Bootloader zu
entdecken - das wäre irgendwie etwas sinnlos. Evtl. kann man auch etwas
am LCD-Modul schrauben. Was ich aber richtig gern anstoßen würde, wäre
der 3p Ausbau. (Ich habe schon so viele Versuche und Blödsinn hier
beobachtet, dass ich gerne helfen würde, dass Chaos zu lösen (oder zu
vergrößern...).

Vielleicht bastel ich am Ende noch eine kastrierte Version für den
Transceiver (Compilerflags - keine Abspaltung). Das würde vielleicht
ein paar Leute freuen, die keine 20ch und RC5 brauchen und das PCB
schon rumliegen haben.

BTW: Hasst Du asm-Module (gut kommentiert natürlch) im C-Code? Falls
ja, werde ich wohl von Dir etwas Nachhilfe in C-Optimierung
benötigen...

Wieviel Mann hängen eigentlich zZ. im Projekt?

Na ja - weiteres per mail!

Hendrik

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.