www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeichen auswerten per UART


Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HAllo,

ich habe eine Mega128 und habe nun die UART so programmiert, dass diese 
die Empfangenen Zeichen in ein Array speichert.
Wenn 3 Zeichen empfangen sind sollen diese ausgewertet werden.
Jenachdem welche Zeichen empfangen wurden soll der uC etwas tun.
Soweit funktioniert das auch empfangen --> speichern --> prüfen.

Ich möchte nur eine Zeichenfolge 012 senden.
Laut Ascii Tabelle sieht das ja so aus:

Zeichen       Hex Wert       empfangene Werte uC
 0              0x30              0x03
 1              0x31              0x13
 2              0x32              0x23

Wenn ich nur die Werte im Arry vergleiche ist das Ergebnis ja falsch da 
die empfangen Werte mit den zu prüfenden Werte ja nicht übereinstimmen.

Wo liegt mein Denkfehler komme nicht dahinter.

Danke

TOM

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Zeichen       Hex Wert       empfangene Werte uC
>  0              0x30              0x03
>  1              0x31              0x13
>  2              0x32              0x23
>
> Wenn ich nur die Werte im Arry vergleiche ist das Ergebnis ja falsch da
> die empfangen Werte mit den zu prüfenden Werte ja nicht übereinstimmen.
>
> Wo liegt mein Denkfehler komme nicht dahinter.

Wie kommst du darauf, dass der µC die Werte als 0x03, 0x13 und 0x23 
empfängt?!?

Autor: Chrisi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Faszinierend... mit was sendest Du die Zeichen? Wie findest Du den 
falschen Wert heraus?

Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Magnus

da ich die empfangene Wert mit
 Input[counter] = UDR0;
in das Array schreibe und dann den Arrayinhalt mit
 PORTC = Input[counter];
auf dem Port anzeigen lasse und dieser zeigt nach dem senden von einer 
'0' den Wert 0x03 an

Gruß

TOM

Autor: TOM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Chrisi,

sende mit Realterm

Register Send und dann  Button 'Send ASCII'

Hat mit meinem alter 08C517A immer funktioniert

Gruß

Autor: Magnus Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Versuch doch mal an Port C gezielt ein 0x00 auszugeben
PORTC = 0;

Was passiert dann?
...
Und was passiert, wenn du an Port C gezielt ein 0x5A ausgibst?
PORTC = 0x5A;

Gruß,
Magnetus

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.