Hallo Vitis,
kommt mit meinem Code der gleiche Fehler ?
dann bleibt ja nur noch der Chinalaser übrig![]()
ja hab ich,
Vorgehen:
Byte an UDR, dann warten auf TXC-Flag und dann nochmal 44µs
seltsamerweise ... ist halt n Chinateil![]()
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hallo Vitis,
kommt mit meinem Code der gleiche Fehler ?
dann bleibt ja nur noch der Chinalaser übrig![]()
Achja,
wie ist das mit dem Startbit ?
Mit dem folgenden Code
dreht sich n nettes Herzchen beim Nachbarn
an der Hauswand
Code:$regfile = "m8def.dat" $crystal = 16000000 $hwstack = 30 ' default use 32 for the hardware stack $swstack = 50 ' default use 10 for the SW stack $framesize = 50 $baud = 250000 Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 Dim A_byte(18) As Byte Dim Countbyte1 As Byte Dim Flag(9) As Byte Led Alias Portd.7 Config Led = Output Uart_tx Alias Portd.1 Config Uart_tx = Output 485_rw Alias Portd.4 Config 485_rw = Output 485_rw = 1 A_byte(1) = 199 A_byte(2) = 128 A_byte(3) = 61 A_byte(4) = 1 A_byte(5) = 1 A_byte(6) = 1 A_byte(7) = 1 A_byte(8) = 1 A_byte(9) = 0 A_byte(10) = 0 A_byte(11) = 0 A_byte(12) = 250 A_byte(13) = 0 A_byte(14) = 0 A_byte(15) = 0 A_byte(16) = 0 A_byte(3) = A_byte(3) * 2 Do If A_byte(3) > 252 Then A_byte(3) = 0 Ucsrb = Ucsrb And &B11100111 Reset Uart_tx Waitus 95 Set Uart_tx Ucsrb = Ucsrb Or &B00011000 Waitus 44 For Countbyte1 = 1 To 16 Udr = A_byte(countbyte1) Do Loop Until Ucsra.txc = 1 Reset Ucsra.txc Waitus 44 Next Waitms 100 Toggle Led If Flag(8) = 0 Then ' rotation A_byte(8) = A_byte(8) + 1 Else A_byte(8) = 0 Flag(8) = 0 End If If Flag(6) = 0 Then A_byte(6) = A_byte(6) + 3 Else A_byte(6) = A_byte(6) - 3 End If If Flag(7) = 0 Then A_byte(7) = A_byte(7) + 2 Else A_byte(7) = A_byte(7) - 2 End If For Countbyte1 = 6 To 12 If A_byte(countbyte1) > 127 Then Flag(countbyte1) = 1 If A_byte(countbyte1) < 5 Then Flag(countbyte1) = 0 Next Loop
Vor den Erfolg haben die Götter den Schweiß gesetzt
Startbit? wie meinst Du das? die UART macht doch von sich aus
n Startbit oder meinst Du das 0-Byte am Anfang, das für die
"Dimmer" ?
Das mag der Chinalaser in meiner momentanen Konfiguration
nicht, da ich den auf DMX #1 laufen habe ... kann man aber
auch auf anderen Kanal jumpern wenn erforderlich.
Das ist n Farbwechsler, den Du betreibst, stimmts?
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hallo Vitis,
ja,das Ding kann Farbe wechseln, Gobos einblenden, Strobbo und Dimmen.
Sorry, natürlich Startbyte also das erste Kanal nach dem Reset. Der soll ja 0 sein. Testweise hab ich da mal einen Wert > 0 eingetragen. Lief aber trotzdem.
ich hab meinen Laser auf #1 eingestellt und der nimmt direkt
das erste Byte als Datenbyte ... wird wohl auch wieder der
Chinese zuschlagen![]()
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hi
ich will in nächster zeit auch mit einem AVR DMX-Daten versenden, ich möchte zunächst einmal ein wenig rumprobiernen- und programieren, allerdings fehlt mir dazu bisher noch eine einfache Schaltung, um das DMX-Protokoll zu versenden, er wäre nett, wenn jemand eine Schaltung posten könnte, die simpel ist und auch zu den hier geposteten codes einigermaßen kompatibel ist
mfg
mafa
Schaltung? ... ist nicht viel ... n MAX485 oder LTC485
oder n sonstigen RS485-Busbaustein, TX vom Controller und
fertig ist die Laube ... ach so, n Abschlusswiderstand noch zwischen
die A-B-Leitungen und n Stützkondensator dazu ...
Vor den Erfolg haben die Götter den Schweiß gesetzt
Hi
vielen Dank
wenn ich das richtig verstanden habe, dann ist das so ähnlich wie beim max232, der stützkondensator kommt soweit ich weiß direkt an V+ und GND, der Abschluss Widerstand wird ja am ende der DMX-Kette eingebaut, ist aber in manchen dimmern schon eingebaut
Lesezeichen