Hallo, ich habe ein Powertip 1602F Display an einem Atmega32 und folgenen Code: #include <avr/io.h> #include "lcd.h" #include <util/delay.h> #include <stdlib.h> #include <util/delay.h> int main(void) { DDRD = 0xFF; lcd_init(); lcd_clear(); int i=1; while(i<=200){ // ... ausgeben lcd_clear(); { char Buffer[4]; lcd_string(itoa( i, Buffer, 10 )); } _delay_ms(30); i++; } return 0; } Das Problem: die Anzeige von i funktioniert bis 39 korrekt, aber ab dann (40) werden für die 2. Dezimalstelle nur noch Buchstaben (p bis y) ausgegeben. Ab 80 ist alles wieder ok. Der Code für die Funktionen ist hier aus dem AVR-Tutorial. Wird hier itoa falsch benutzt, oder was könnte die Ursache sein? Sascha
hast du die i-perepherie des kontos mal überprüft? wenn die nämlich hängen sollte, wäre das mit dem o.g. p bis y kein wunder
Dein Fall ist etwas seltsam. Im ASCII Code unterscheiden sich die Buchstaben 'p'-'y' von den Buchstaben '0'-'9' nur dadurch, dass Bit 7 noch mit gesetzt ist. Normalerweise ist das ein Hinweis darauf, dass irgendwo ein Kurzschluss auf den Datenleitungen vorliegt. Auf der anderen Seite: wenn du die Zahlen von 00 bis 39 ausgibst, ist jeder einzelne Buchstabe '0'-'9' schon ein paar mal ausgegeben worden, so dass der Fehler eigentlich schon früher hätte auftreten müssen.
ja, einen Fehler auf den Datenleitungen würde ich ausschließen, da die Ziffern 0-9 auf jeder Position des Displays angezeigt werden können. Wie gesagt, das Problem tritt erst bei 2-stelligen Zahlen ab 40 bis 80 auf. Bei 3-stelligen Zahlen tritt dieses Problem bei der 2. und 3. Stelle auf. Sascha
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.