Hallo, ich hab einige Codes im Internet von einem DMX Sender gefunden. Die meisten schalten die Baudrate der USART beim BREAK einfach höher.. Allerdings stellt sich mir jetzt die Frage, wie man auf Werte zwischen 7 - 17 für das LowRegister kommt? Der BREAK sollte doch mind. 88us lang sein also müssten die Werte doch viel höher liegen! Oder hab ich da etwas nicht verstanden?! Der Grund warum ich frage ist, dass ich zurzeit selber einen kleinen DMX-Sender baue. Danke im vorraus.
:
Verschoben durch User
@ Eddi (Gast) >Die meisten schalten die Baudrate der USART beim BREAK einfach höher.. Eher niedriger. >Allerdings stellt sich mir jetzt die Frage, wie man auf Werte zwischen 7 >- 17 für das LowRegister kommt? Ausrechnen?
Ja sorry die Baudrate wird niedriger und der Wert im Register höher... Ja habs eben ausgerechnet sonst wüsst ich ja nicht dass es unter 88us liegt :D bei zb. einen Wert von 9 bin ich wenn ichs noch richtig in erinnerung hab auf 10us gekommen das wär ja viel zu kurz
Nö, das kann schon hinkommen. Lass uns mal ein wenig rechnen: Die normale DMX Baudrate ist 250kBit/s, jedes Bit hat also eine Länge von 4µs. Start- und Stopbit dazu sind insgesamt 10 bit = 40µs. Also, etwas vereinfacht dauert ein Byte bei UBRR: 7 dann 40µs, bei UBRR: 17 etwa 97µs. ( Jetzt mal grob einfach mit Dreisatz). Sieht also alles recht gut aus. Die 88µs sind übrigens das Minimum, es darf auch etwas länger sein. Habe hier schon Pulte mit 120µs gemessen.
@ Matthias Sch. (Firma: Matzetronics) (mschoeldgen) >normale DMX Baudrate ist 250kBit/s, jedes Bit hat also eine Länge von >4µs. Start- und Stopbit dazu sind insgesamt 10 bit = 40µs. DMX hat ZWEI Stopbits, also 44us/Byte Asserdem muss man nicht zwingend den Break über dem UART erzeugen, bei ~100us darf man auch mal ein einfaches Delay nutzen. Problem gelöst.
Falk Brunner schrieb: > DMX hat ZWEI Stopbits, also 44us/Byte Na, umso besser, das verändert aber die Rechnung nur marginal. Falk Brunner schrieb: > Asserdem muss man nicht zwingend den Break über dem UART erzeugen, bei > ~100us darf man auch mal ein einfaches Delay nutzen. Problem gelöst Ist aber einfacher, den UART zu benutzen. Der läuft von alleine und beschäftigt den MC solange nicht. Deswegen machen das ja auch alle so.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.