Hallo, fast traue ich mir die Frage nicht: Ich will Zufallszahlen von 0..7 erzeugen und habe das gem. folg. Programmausschnitt versucht. Bei der LCD-Ausgabe (Kontrolle) erscheinen häufig Werte größer 7. Wo ist mein vielleicht trivialer Denkfehler? unsigned char test, test1; test=rand(); test &= 0x07; lcd_goto(1,1); lcd_write_s("+++++"); lcd_goto(1,1); wait_ms(20); itoa(test,Buffer,5); lcd_write_s(Buffer); wait_ms(20); Alles in einem mega8 mit AVR-Studio 4.13 SP2. Die +-Zeichen sind nur für das sichere Überschreiben des Displayinhaltes. Dass Doubletten entstehen, ist mir klar. Vielen Dank Dieter
Weil dus mit itoa in die 5er Basis wandelst und die dezimale 7 in der Basis 5 12 ist.
Bei "itoa(test,Buffer,5)" meinst Du mit "5" wohl die Länge des Ergebnisses? In Wirklichkeit ist das die Zahlenbasis, mit der konvertiert wird. Wenn Du Dezimalzahlen willst, sollte da 10 stehen, in diesem Fall kann es auch 8 sein (oktal), weil die Werte nur von 0 bis 7 gehen.
Hallo, Ihr beiden, ja, man müßte halt lesen können. Nun klappt es. Vielen Dank und schönen Sonntag noch Dieter
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.