Ich habe hier heute versucht ein 2*16 LCD-Display mit HD44780-Controller
an einen ATMEGA16L anzuschließen, der mit einem externen 8MHz Quarz und
einer Betriebsspannung von 5V läuft. Ich versuche dabei momentan
gerade, das Display im 8bit Modus mit dem lcd-example aus der avrlib
anzusprechen.
Die Anschlussbelegung sieht dabei folgendermaßen aus:
DB0->PD0
DB1->PD1
DB2->PD2
DB3->PD3
DB4->PD4
DB5->PD5
DB6->PD6
DB7->PD7
RS->PC2
RW->PC3
E->PC4
Hier ein Auszug aus meiner lcdconf.h, in der ich Änderungen vorgenommen
habe (von PORTA auf PORTD umgestellt):
#ifdef LCD_PORT_INTERFACE
#ifndef LCD_CTRL_PORT
// port and pins you will use for control lines
#define LCD_CTRL_PORT PORTC
#define LCD_CTRL_DDR DDRC
#define LCD_CTRL_RS 2
#define LCD_CTRL_RW 3
#define LCD_CTRL_E 4
#endif
#ifndef LCD_DATA_POUT
// port you will use for data lines
#define LCD_DATA_POUT PORTD
#define LCD_DATA_PIN PIND
#define LCD_DATA_DDR DDRD
// access mode you will use (default is 8bit unless 4bit is
selected)
//#define LCD_DATA_4BIT
#endif
#endif
Ausserdem habe ich noch in der global.h eingestellt, dass der Prozessor
mit 8MHz läuft.
Allerdings erscheint auf dem Display kein Text, sondern ich sehe nur
diese üblichen schwarzen Balken in der 1. Zeile.
Ich habe auch schon mal veruscht die "data-lines" an PORTA zu
betreiben, wie es bei dem Beispiel voreingestellt ist, aber es zeigt
sich dieselbe Wirkung.
Achja, nur so am Rande, aber so wie im mikrocontroller.net AVR-Tutorial
beschrieben, im 4bit-Modus, gelang es mir das Display in Betrieb zu
nehmen.