Problem mit Display

Gast #1222030
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
#1222404
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.
Gast #1222422
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren