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?
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
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
PS: Es sind natürlich meinunion.meinchar[0] und ...[1], und nicht ...[1] und ...[2]. MfG, Sebastian
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.