Hallo Oliver,
ich hab das Display am Laufen an einem Atmega16.
Ich verwende die lcdlibrary von Peter Fleury
Bei mir ist Pin1 auf +5V, Pin2 und 14 auf GND, Pin 3,4,5 sind RS, RW,E' (da is wohl im Datenblatt nur die Beschreibung vertauscht, die Funktion is O.K.); dann Pins 6,7,8,9 unbeschaltet und die Pins 10,11,12,13 als Data0 bis 3 in der library.
Mit ein paar Anpassungen in der "lcd.h" und folgendem Code sollte das dann funktionieren...
Code:
...
lcd.h:
#define XTAL 8000000
#define LCD_LINES 2 /**< number of visible lines of the display */
#define LCD_DISP_LENGTH 16 /**< visibles characters per line of the display */
#define LCD_PORT PORTD /**< port for the LCD lines */
#define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN 0 /**< pin for 4bit data bit 0 */
#define LCD_DATA1_PIN 1 /**< pin for 4bit data bit 1 */
#define LCD_DATA2_PIN 2 /**< pin for 4bit data bit 2 */
#define LCD_DATA3_PIN 3 /**< pin for 4bit data bit 3 */
#define LCD_RS_PORT LCD_PORT /**< port for RS line */
#define LCD_RS_PIN 4 /**< pin for RS line */
#define LCD_RW_PORT LCD_PORT /**< port for RW line */
#define LCD_RW_PIN 5 /**< pin for RW line */
#define LCD_E_PORT LCD_PORT /**< port for Enable line */
#define LCD_E_PIN 6 /**< pin for Enable line */
...
Main:
#include"lcd.h"
...
void Init(void()
{
lcd_init(LCD_DISP_ON);
lcd_clrscr();
lcd_puts("Hello world.");
}
...
Gruß Bernd
Lesezeichen