habe folgendes problem: ich will meinen dptr(16 bit register) über die uart mit einem wert zwischen 0dez und 20000dez laden. habe es mir so gedacht, dass man im terminalprogramm die werte in form von ascii Zeichen eingibt und so jeweils nur 2 zeichen zu verschicken hat, wovon eines in das highbyte des dptrs geht und das andere in das lowbyte des dptrs. jetzt ist mir aber aufgefallen dass man mit asciizeichen ja gar nicht alle werte von 00hex bis FFhex darstellen kann ;-( gibt es da irgend ne andere möglichkeit das irgendwie hinzukriegen? mal bsp: ich will das mein dptr nachher die zahl 250dez beinhaltet. um das zu erreichen muss ich ja vom terminal zum uC den wert FA hex schicken. leider gibt es für den wert FA ja kein ascii-zeichen. wär super wenn mir jmd helfen könnte, ist nämlich teil von nem projekt und das muss nächste woche stehn mfg markus
für 16bit brauchst du 4 Hex-Werte, dementsprechend 4 Ascii-Zeichen (die allerdings im Empfänger dekodiert werden müssen ('0'=0x30..'9'=0x39, 'A'=0x41..'F'=0x45. Alternativ könntest du 2 Bytes im Binärmodus senden, kann man mit AltGr + 0 + Dezimalzahl eingeben, also für 0xFA AltGr drücken (und halten!), dann mit 0250 mit dem Ziffernblock eingeben, AltGr wieder loslassen. Da bei Binärübertragung prinzipiell alle Werte zwischen 0 und 255 auftreten können, hast du allerdings keine (einfache) Möglichkeit mehr, dem Empfänger mitzuteilen, dass die Übertragung fertig ist (bei Ascii nimmt man gern CRLF)
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.