wieder mal uart. Falsche Zeichen

Gast #150430
Lesenswert?

Hallo zusammen

Habe das Tutorial UART nachgebaut und getestet(mega8 4MHz).
Nur ist das Ergebniss nicht so wie es sein soll.
Irgendwie werden die Zeichen "verdreht"

Beispiel:

Das 'T' wird zum 'W'
aus Binär 01010100 wird 01010111
nach weiteren Tests folgendes Ergebniss

Alle Bits werden invertiert und nach links geschoben,
wobei Bit 0 (rechte Bit) gleich dem Bit 7 (das nach links
"rausgeschobene" Bit ist).

Für das 'T'
            invertiert  verschoben
01010100 -> 10101011 -> 010100111

Muss ich nun alles per hand umrechnen oder was läuft Falsch.
Gast #150432
Lesenswert?

Den CD4066 habe ich zwischegeschaltet.
Der Max232 macht doch nichts anderes als den Pegel zu wandeln, oder.
Habe es auch mit nem OP versucht mit selben ergebniss.
ich bekomme es nur in den griff mit folgendem Code.

serout:
        sbis UCSRA,UDRE
        rjmp serout
    mov temp2 ,temp
    ldi r18, 0b11111111
    eor temp, r18
    eor temp2, r18
    rol temp2
    rol temp
        out UDR, temp

        ret

ist noch nicht das ware aber es läuft.

das kann doch nicht sinn des ganzen sein.
Gast #150434
Lesenswert?

ja wenn ich den max richtig verstehe
wandelt er nur den pegel von +-12 auf ttl und umgekehrt
aber das erklärt noch nicht die verschiebung.
ist mega8 defekt?was ich nicht glaube da alles so ist wie in Tutorial
ASM.
mit der konvertierung geht es ja.
Gast #150436
Lesenswert?

Der Effekt mit dem um 1 Bit verschieben liegt wahrscheinlich am
ebenfalls invertierten Startbit.
Immerhin ganz witzig, dass überhaupt noch was sinnvolles rauskommt bzw.
dass Sacha einen Zusammenhang gefunden hat ...

Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren