mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Datenkommunikation UART


Autor: Beat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich versuche seit einer Woche fast Tag und Nacht einen unsigned 16 Bit 
Zahlenwert in einen ASCII String zu wandeln und über den UART an den PC 
zu senden.
Als Vorlage habe ich das GCCTEST6 Programm von Volker Ott genommen.
Aber dieses Beispielprogramm funktioniert mit meinem Atmega163 nicht. 
Ich bekomme nur die Zeichen "k+" gesendet.
GCCTEST4 wo der String "Serial Data from AVR received###" funktioniert 
hingegen einwandfrei.
Kann mir jemnd einen Typ geben wie man in C eine solche Typenumwandlung 
programmiert und an den UART sendet?

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wär's denn mit einem Union ?

union xyz
 {
 unsigned int meinint;
 char meinchar[2];
 } meinunion;

Dann kannst in meinunion.meinint den Integer reinschreiben,
und die beiden Chars meinunion.meinchar[1] und ...[2] über
den UART versenden.

MfG,

Sebastian

Autor: Beat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Sebastian
werde mal heute abend versuchen ob ich so die gewünschte Kommunikation 
hinkriege. Vorerst möchte ich aber noch das schöne Wetter in der Schweiz 
geniessen und etwas in die Berge fahren.
Werde mich wieder melden sobald ich Resultate habe.

Schönen Tag
Beat

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS:
Es sind natürlich meinunion.meinchar[0] und ...[1], und nicht ...[1] und 
...[2].

MfG,

Sebastian

Autor: Beat (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sebastian

ja es ist so, ich habe noch schnell in meinem Buch C für PC's 
nachgeschlagen, so wie ich glaube funktioniert es. Ausserdem musste ich 
feststellen das GCCTest6 wohl auch funktioniert, der Fehler liegt glaub 
ich bei mir. Wenn nämlich ein Wert grösser als 127 gesendet wird, wird 
das auf meinem Hyperterminal nicht mehr dargestellt da 127 das letzte 
Zeichen in der ASCII Tabelle ist (DEL). Ich werde nun dieser Tage selber 
irgendein Programm schreiben das mir alle Werte bis 255 auf dem 
Bildschirm ausgibt um mein Programm zu testen.

Vielen Dank für die Hilfe

Beat

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.