www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit Display


Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Chef (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sascha (Gast)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.