Bascom DMX sendet falsche Kanäle

OP #3266721
Hallo,

Ich habe ein Problem beim Senden von DMX Kanälen. Zum Testen verwende 
ich eine Varytec Par 56 LED.

Hier der Code:
1
$regfile = "m32def.dat"
2
$crystal = 16000000
3
$baud = 250000
4

5
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 , Clockpol = 1,
6
Config Porta = Input
7
Dim Null_byte(1) As Byte
8
Usart_tx Alias Portd.1
9
Config Usart_tx = Output
10
Config Adc = Single , Prescaler = Auto , Reference = Avcc
11
Dim Fader(512) As Integer
12

13
Do
14
Fader(1) = Getadc(0)
15
Fader(2) = Getadc(1)
16
Fader(3) = Getadc(2)
17
Shift Fader(1) , Right , 2
18
Shift Fader(2) , Right , 2
19
Shift Fader(3) , Right , 2
20

21

22
Ucsrb.txen = 0                                              
23
Usart_tx = 0                                           
24
Waitus 200                                              
25
Usart_tx = 1                                            
26
Ucsrb.txen = 1                                          
27
Waitus 16                                               
28
Printbin Null_byte(1) ; 1 ; Fader(1) ; 512                 
29

30

31
Loop
Ich habe folgendes Problem:
Fader(1) bzw. ADC 0 ist der erste Kanal, Rot. Das funktioniert soweit 
auch. Der zweite Kanal der Lampe ist Grün. Bascom sendet hier aber den 
3. Kanal, zusehen als Blau. Der dritte Kanal wäre eigentlich Blau, 
Bascom sendet hier aber Kanal 4, Strobe.

Warum verschieben sich die Kanäle ab Kanal 1 jeweils um 1? Ich habe es 
nicht geschafft Kanal 2 zu senden, also Grün.
Hat jemand eine Idee was ich falsch mache?

Schaltplan ist als Anhang dabei.

Danke im Voraus!
Angehängte Dateien:
OP
Habe es hinbekommen...
1
$regfile = "m32def.dat"
2
$crystal = 16000000
3
$baud = 250000
4

5
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 2 , Databits = 8 , Clockpol = 1,
6
Config Porta = Input
7
Dim Null_byte(1) As Byte
8
Usart_tx Alias Portd.1
9
Config Usart_tx = Output
10
Config Adc = Single , Prescaler = Auto , Reference = Aref
11
Dim Fader(255) As Integer
12

13
Dim Puffer(255) As Byte
14
Do
15
Fader(1) = Getadc(0)
16
Fader(2) = Getadc(1)
17
Fader(3) = Getadc(2)
18
Shift Fader(1) , Right , 2
19
Shift Fader(2) , Right , 2
20
Shift Fader(3) , Right , 2
21

22
puffer(1) = fader(1)
23
Puffer(2) = Fader(2)
24
Puffer(3) = Fader(3)
25
Ucsrb.txen = 0                                              'Usart ausschalten
26
Usart_tx = 0                                                'Reset abfallende Flanke
27
Waitus 200                                                  'minimale Länge des Resets
28
Usart_tx = 1                                                'Reset aufsteigende Flanke
29
Ucsrb.txen = 1                                              'Usart einschalten
30
Waitus 16                                                   'MARK zw. RESET und Startbyte min. 8us
31
Printbin Null_byte(1) ; 1 ; Puffer(1) ; 255                 'jetzt die Daten
32

33

34
Loop

Thread kann gelöscht werden...

MfG
uuuhhh ... Du belegst Dir 1024 Bytes im Ram für 3 Datenbytes?? Respekt 
...

Sowei ich mich erinnere ist beim DMX nach dem Break das erste Byte ne 0 
als Startcode, dann gehts mit CH1 los. VOr der 0 kommt glaub ich 8µs die 
Markierung.
Möglicherweise wollen Deine Slaves aber auch nicht die Frames so fix 
hintereinander weg um die Ohren bekommen, da können n paar nop's 
zwischen den Bytes hinter nem TXC-Flag Wunder wirken.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.