Forum: Mikrocontroller und Digitale Elektronik Datenkommunikation UART


von Beat (Gast)


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?

von Sebastian (Gast)


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

von Beat (Gast)


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

von Sebastian (Gast)


Lesenswert?

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

MfG,

Sebastian

von Beat (Gast)


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

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.