Moin,
ich habe vor mir ein Merger selber zu bauen. Da das meine erste Eigenentwicklung wird und ich noch nicht die große Ahnung von µC Programmierung habe, wollte ich mal nachfragen, ob die Grundüberlegung funktionieren kann.
Und zwar, erstmal die Funktionen, die ich mir vorgestellt habe einzubauen.
2x DMX In, 1 oder 2 DMX Out
Merge A & B Modus HTP oder LTP
Fallback A to B bzw. B to A bei Signalausfall
Shift B on A oder A on B mit StartChannel xxx
wenn 2 DMX Out dann noch A auf A und B auf B, wenn A ausfällt wird auf beide B ausgegeben
Bedienung über 2x16Char Display, 3 Taster.
Als µC hatte ich den ATMEGA 644P ins Auge gefasst, 2 UARTS, ausreichend Ram.
Programmierung des Menus, Tasten, Leds etc. sehen ich recht gelassen entgegen, da hilft der Analyzer gut weiter. Allerdings bereiten mir der DMX Empfang und Senden etwas Sorgen, Libs wären auch die von Henne.
Zum Empfang, ich lege ein Array DmxOut bzw. 2 bei 2 Outs im Ram an.
else if (DmxState == STARTADR)
hier würde ich DmxOut[DmxCount] entsprechend dem eingestellten Modus verändern.
Wie erkenne ich ob ein korrektes DMX Signal ankommt? Überprüfen ob DmxState zu lange == IDLE ist und ob bei else if (DmxState == BREAK) DmxByte != 0 oder != 0xCC ist? (Bin des Assemblers nicht wirklich mächtig, sonst würde ich mir die Dimmer bzw. Switchpack Firmware ansehen)
Was passiert, wenn der Merger Sendet, und gleichzeitig der Interrupt UART_RX ausgelöst wird? Schalte ich den Interrupt aus während dem Senden? Wäre dann überhaupt für 2x Empfang noch Prozessorzeit frei oder ist der dann die ganze Zeit mit Senden beschäftigt?
Bekomme ich Probleme mit der Refresh Rate des Ausgegebenen Dmx? Ist es da egal ob der µC mit 8 oder 16MHz läuft?
Ihr seht schon, das wird viel Try and Error werden, aber wenn das dann mal funktioniert, gibts auch nen Schaltplan und die Firmware.
Wäre super, wenn ihr was dazu sagen könntet.
Dennis