Forum: Mikrocontroller und Digitale Elektronik Problem mit Display


von Sascha (Gast)


Lesenswert?

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

von Chef (Gast)


Lesenswert?

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

von Sascha (Gast)


Lesenswert?

Sorry, aber was meinst Du mit "i-perepherie des kontos"?
Gruß
Sascha

von Karl H. (kbuchegg)


Lesenswert?

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.

von Sascha (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.