www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Lerne LCD zu programmieren


Autor: Nils H. (grummel)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

seit meinem Studium ist schon eine Weile vergangen und ich versuche mich 
nun mal wieder an der Programmierung mit einem Atmega 8. Zu Beginn 
wollte ich ein einfaches LCD-Display programmieren, wo ich aber schon 
auf Probleme stoße. Ich verwende Programmer's Notepad und das meldet mir 
in der lcdsetup.h eine falsche Deklaration vor "x".
Wenn ich die Variable als int verwende geht es. Nach Übertragung in den 
Atmega8 funktioniert das Ganze aber gar nicht. Es erscheint immer ein 
schwarzer Balken im Display. Aber nur einer, Textausgabe habe ich auch 
schon versucht, geht aber auch nicht. Irgendwas muss bei der 
Initialisierung also schief laufen.

Könnt ihr mir helfen?

Ich danke schonmal.

Nils

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#define LCD_PORT      PORTC
#define LCD_DDR       DDRC
#define LCD_RS        PB4
#define LCD_EN        PB5

Geht mit dem Code nicht. Muss alles an PORTC.

Autor: Detlev T. (detlevt)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Nils,

ein schwarzer Balken heißt häufig, dass die Kontrastspannung nicht 
richtig eingestellt ist. Nach meiner Erfahrung darf ein noch nicht 
initialisiertes Display nur einen sehr schwach erkennbaren Balken 
zeigen, also leicht-grau, nicht schwarz.

Gruß, DetlevT

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

Bewertung
0 lesenswert
nicht lesenswert
Reihenfolge!
#include "lcdsetup.h"
#include <avr/io.h>
#include <util/delay.h>
#include <avr/iom8.h> 
#include <inttypes.h>
#include <stdint.h>

int main(void)
{
  // Initialisierung LCD-Display
  
  int Zeile=1;
  int Spalte=0;
  lcd_init();

  
  lcd_clear();
  while(1)
    ;
  return 0;
}

Du solltest schon damit anfangen, die übrigen Header zu inkludieren, ehe 
dann lcdsetup.h den uint8_t benötigt, der erst durch stdint.h dem 
Cmopiler bekannt gemacht wird.

Autor: Nils H. (grummel)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich danke euch für die hilfreichen Hinweise. Ich habe nun alles auf 
einen Port verdrahtet. Und die Kontrastspannung überprüft. Und die 
Reihenfolge der Header geändert. Code habe ich angehängt.

Nun bekomme ich aber eine Zeile Striche und eine leere Zeile.

Ich verstehe nicht, warum.

Habt ihr eine Ahnung?

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

Bewertung
0 lesenswert
nicht lesenswert
Nils H. schrieb:
> Ich danke euch für die hilfreichen Hinweise. Ich habe nun alles auf
> einen Port verdrahtet.

Was genau hast du wie verdrahtet?

> Nun bekomme ich aber eine Zeile Striche und eine leere Zeile.
> Ich verstehe nicht, warum.
> Habt ihr eine Ahnung?

Dein LCD wird nicht richtig initialisiert.

Autor: Nils H. (grummel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DB 4-7 sind an PD0-3 und RS an PD4 und E an PD5. Also wie in der 
Headerdatei angegeben.

Was mache ich bei der Initialisierung falsch?
Ich habe mich hierbei an dem Turial orientiert.

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.