mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik wieder mal uart. Falsche Zeichen


Autor: Sacha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du einen Max232 o.ä. zwischen PC und uC ?

Autor: Sacha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
imo invertiert der max die zeichen auch..

Autor: Sacha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>imo invertiert der max die zeichen auch..

Und genau das verursacht den Fehler.

Autor: Stefan Kleinwort (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
High Pegel am UART <=> negative Spannung an V24
Low Pegel am UART <=> positive Spannung an V24

wird bei selbergebastelten V24 Pegelkonvertern bisweilen vergessen.

Autor: T.Stütz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das zu übertragende Zeichen wird so auf der Leitung erscheinen:

Startbit,D0,D1,D2,D3,D4,D5,D6,D7,[Parität,]Stopbit,[2.Stopbit]

es wird also zuerst das unterste datenbit übertragen.

Gruss

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.