Hallo, ich lese ein Register ein und wandle es mittels itoa() in ein String um. Soweit ich weiß kann man Werte von Null bis 255 in einem Register speichern, aber ich bekomme Zahlen bis <1000 ausgegeben. Wenn ich das ganze in Hex umwandle, funktionierts einwandfrei. Hab das Programm mal angehängt. Hat jemand eine Idee woran das liegt? Danke Daniel
Mit itoa() wandelst du einen Integer Wert in einen String um. du bekommst aber nen Zeiger auf Char zurückgegeben, vielleicht liegt es daran. war jetzt nur mein erster gedanke
bt1 ist ein vorzeichenbehafteter int. Möglicherweise wird bei der Zuweisung bt1=inp(TCNT0); das Vorzeichen erweitert? Interessante Nebeneffekte treten auf, wenn die Zahl größer wird als 9999 oder kleiner als -999 - dann nämlich reicht der Puffer ct1 mit 5 Byte größe nicht aus und itoa schreibt auf den Stack. Lecker.
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.