DMX Sender und Empfänger

  • So nach langem warten habe ich meine dmx empfänger Platine und Sender Fertig. Jetzt habe ich das Problem wie bekomme ich DMX in Bascom Programiert und adressiert, Spriche den Sender und Empfänger. Habe auf dem Sender und Empänger Jeweils ein Atmega 16 ein Max485, und ein 8Mhz quartz drauf . Mein Problem liegt darin das ich noch nicht weis wie ich in Bascom DMX Programieren kann, leider ist es noch neu land für mich , Habe den Sender und Empfänger mit einander Verkabelt . Es soll so sein das der Sender zum Beispiel sagt. Empfänger adresse X mach bitte die Blau Led an. Empfänger x1 Bitt rot .


    Kann mir da jemand weiter Helfen oder mit tipps geben wie mann so was programiert, muss auch nix Fertiges sein . Nur so das mann es ein wennig Verstehen und lernen kann


    Bedanke mich schon mal in voraus

  • $regfile = "m16def.dat"


    $crystal = 8000000


    $baud = 250000




    Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 , Clockpol = 1




    Dim Puffer1(255) As Byte


    Dim Puffer2(255) As Byte


    Dim Puffer3(2) As Byte


    Dim Null_byte(1) As Byte




    Usart_tx Alias Portd.1


    Config Usart_tx = Output




    Do


    Ucsrb.txen = 0 'Usart ausschalten


    Usart_tx = 0 'Reset abfallende Flanke


    Waitus 200 'minimale Länge des Resets


    Usart_tx = 1 'Reset aufsteigende Flanke


    Ucsrb.txen = 1 'Usart einschalten


    Waitus 16 'MARK zw. RESET und Startbyte min. 8us


    Printbin Null_byte(1) ; 1 ; Puffer1(1) ; 255 'jetzt die Daten


    Printbin Puffer2(1) ; 255


    Printbin Puffer3(1) ; 2


    'Hier dein genialer Code rein...


    Loop

  • '--------------------------------------------------------------
    ' DMX-Empfang.bas
    ' Grundgerüst für den Empfang des DMX-512 Signals
    ' (c) 2008, Günter Gerold
    ' Fileversion 1.0
    '--------------------------------------------------------------
    $regfile = "m16def.dat"
    $crystal = 8000000 'selbst mit 8MHz kommt der Code noch locker mit
    $baud = 250000
    'USART auf DMX512 einstellen
    Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 , Clockpol = 1
    On Urxc Empfang
    Enable Urxc
    Enable Interrupts


    'Puffer für das angekommene Byte aus dem DMX-Signal
    Dim X As Byte
    'Alle 512 Kanäle werden in diesem Array gehalten
    Dim Buffer(512) As Byte
    'Der aktuelle Kanal in der Schleife
    Dim Kanal As Word


    Do
    'Hier muß noch dein genialer Code rein...
    Loop


    '--------------------------------------------------------------
    '
    'Empfang:
    '
    'steht in der USART ein Byte an, wird ein Interrupt
    'ausgelöst und folgender Code abgearbeitet:
    '--------------------------------------------------------------
    Empfang:
    X = Udr
    If Ucsra.fe = 1 Then
    Kanal = 0
    Else
    Incr Kanal
    If Kanal < 513 And Kanal > 0 Then Buffer(kanal) = X
    End If
    Return

  • Kann mir da jemand weiter Helfen oder mit tipps geben wie mann so was programiert, muss auch nix Fertiges sein . Nur so das mann es ein wennig Verstehen und lernen kann

    Kann mir den keiner Helfen?

    ?( Du hast jetzt die kompletten Sende- und Empfangroutinen. Wenn jetzt noch jemand hilft, ist das was Fertiges.
    Vielleicht solltest du erst mal die Grundlagen lernen und mal ein paar Tutorials durcharbeiten, bevor du DMX-Sender und Empfänger programmierest.
    Es kann dir auch gar keiner helfen, weil niemand weiß, was du da zusammen gelötet hast.

  • Geduld ist nicht deine Stärke?
    Du brauchst noch eine Software-Pwm am Empfänger, die aus den empfangenen Daten die Pwm für deine Led macht.
    Dazu fragst du mal Google und wenn du dann ein konkretes Problem hast, dann kannst du noch mal fragen.
    Btw.: PD0-2 würde mir irgendwie sorgen machen....

  • PD0-1 ist doch richtig. Ro an RXD ,RE und DE an Into0 , DI an TXD oder verstehe ich dar was falsch???? habe nen atmega16

    das heist ich Schreibe dan im Empänger einfach Config PortD.2=output und dann PortD.2=1 dann müster er doch auf empfang stehen oder bin gerade dabei mir das bei zu bringen aber ich weis noch niemals ober der sender und empfänger auch richtig arbeitet

  • Wie wärs denn, wenn du mal deine Schaltpläne reinstellst, anstatt nur nackte Portnamen zu nennen.

    aber ich weis noch niemals ober der sender und empfänger auch richtig arbeitet

    Der üblichere Weg, vor allem wenn man vom Thema wenig Ahnung hat, ist ja auch sich erst mal auf eine Seite zu beschränken und für die andere Seite was funktionierendes zu nehmen.
    Also erst mal einen fertigen Sender oder Empfänger kaufen oder leihen. Das würde Erfolge schneller sichtbar machen und die Fehlersuche halbieren.