Hallo, ich habe da ein Problem mit der Übertragung von Dezimalzahlen über den UART an ein Terminalprogramm. In einem Register habe ich eine Zahl zwischen 0 und 255. Diese Zahl möchte ich nun als Dezimalzahl auf dem Terminalprogramm ausgeben. Das Problem ist nun, dass ich nur ascii -Zeichen einzeln übermitteln kann (oder?). D.h. ich müsste aus der Dualzahl im register irgendwie die dezimalen Hunderter-, Zehner- und Einerstellen gewinnen und sie dann in der richtigen Reihenfolge übermitteln. Habt ihr eine Idee wie man das machen kann??? Grüße Dennis.
Hallo Denis, Du musst die Hexzahl(bin) zunächst in eine Dezimalzahl(bcd) umwandeln. bin2bcd8 : http://www.atmel.com/dyn/resources/prod_documents/doc0938.pdf Anschließend stehen die Dezimalzahlen dann einzeln in den entsprechenden Registern. z.B. 245 -> r16=2, r17=4, r18=5 Die Dezimalzahlen noch mit dem Offset von 0x30 addieren (ASCII-Umwandlung) und über UART übertragen - fertig! Gruß Andreas
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.