Forum: Mikrocontroller und Digitale Elektronik Atmega324P Usart UDR0 lässt sich nicht beschreiben


von Jan H. (linklon)


Angehängte Dateien:

Lesenswert?

Im folgenden Programmteil probiere ich UDR0 zu beschreiben, diese 
ignoriert allerdings die Aufforderung und sendet stur 0. Der Controller 
sollte DMX Signal generieren welches aus 513 Frames zu 8bit mit jeweils 
2 Stoppbits besteht .Die Usart wurde initialisiert und sendet auch mit 
der richtigen Baudrate, nur die Frames haben Alle wert null (mit KO 
gemessen)
Mir gehen langsam die Ideen aus...

dmxsend1:    lds rmp,ucsr0a
    sbrs rmp,udre0
    ret
           ldi templ,low(ch512out)
    ldi temph,high(ch512out)
    cp xl,templ
    cpc xh,temph
    brsh makebrake
    ld rmp,x+
    sts udr0,rmp
    ret

Ich habe den completten Code angehängt

von Jan H. (linklon)


Angehängte Dateien:

Lesenswert?

Sorry... nochmals den code in aufgeräumter version...

von spess53 (Gast)


Lesenswert?

Hi

Im Simulator läuft der Code eigentlich.

>(mit KO gemessen)

Was ist KO?

MfG Spess

von Jan H. (linklon)


Lesenswert?

mit Jtagice läuft der Code auch durch, lädt die richtigen Werte (128) in 
rmp und schreibt sie vermeitlich ins UDR0 lediglich wenn ich mir UDR0
anschaue ändert sich der Wert da nicht. senden tut er auch, dh. er hat 
gemerkt dass auf udrn geschrieben wurde, der break funktioniert auch. Am 
DMX Tester habe ich gültiges Signal, nur leider überall 0 drin....
Mit KO meine ich Kathodenstrahl Osziloskop. Ich kann jeweils nur die 
Stopbits sehen. Wenn Ich ein Signal mit dem Tester generiere, kann ich 
bit für bit sehen...

Gemäss dem was das Datenblatt sagt sind auch alle Bedingungen erfüllt,
um auf UDR0 zu schreiben.... (Usart Initialisiert, UDRE0 =1 )

Irgendwo ist hier der Wurm drinn....

von Jan H. (linklon)


Lesenswert?

Folgendes kann ich nun mit sicherheit sagen:

UDR0 wird beschrieben,da am Ausgang Signal vorhanden ist (auf dem Oszi 
sind jeweils die Stoppbits zu sehen dh. gesendeter Wert = 0)
alle Frameeigenschaften und Baudrate sind ok, da mein DMX-Tester "valid 
DMX" anzeigt. Auch die Anzahl der Kanäle stimmt (512) +1 leeres 
Startbyte
(Timing auch per KO überprüft bzw. mit Signal von Lichtpult verglichen)

(sowohl Lichtpult als auch DMX-Tester senden DMX gemäss Spezifikation 
DMX512/1990(signale mit KO vermessen))

Frameeigenschaften: 8bit 2 Stoppbit no parity auf 250k/Baud

Weiss jemand was zum ignorieren der Werte, die auf UDR0 geschrieben
werden führen kann? (ich stelle diese Frage nach eingehendem und 
"vergeblichem" Studium des Datenblatts)

bin für jede hilfe dankbar....

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
Noch kein Account? Hier anmelden.