Gast
#663984
Hallo,
ich habe das Display 204B der Firma Displaytech Ltd. von Reichelt (4x20)
mit Chip lt. Datenblatt Typ KS0066U und Treiber x2 KS0063.
Der uC ist ein ATmega32.
Das Display ist derzeit an Port B angeschlossen (auch schon mit Port D
getestet).
Angeschlossen ist so:
Display uC
--------------------
DB4 PB0
DB5 PB1
DB6 PB2
DB7 PB3
RS PB4
RW PB5
E PB6
& Vcc etc. natürlich. Als lcd-lib nehme ich die lcdlibrary von Peter
Fleury. Der uC läuft derzeit mit 1 Mhz int. Oz.. Mein Programm sieht so
aus:
#include <stdlib.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include "lcd.h"
#include <util/delay.h>
/*
** constant definitions
*/
/*static const PROGMEM unsigned char copyRightChar[] =
{
0x07, 0x08, 0x13, 0x14, 0x14, 0x13, 0x08, 0x07,
0x00, 0x10, 0x08, 0x08, 0x08, 0x08, 0x10, 0x00
};
*/
int main(void)
{
unsigned int i;
for(i=0; i<=100; i++)
_delay_ms(10);
/* initialize display, cursor off */
lcd_init(LCD_DISP_ON);
for (;;) { /* loop forever */
lcd_clrscr();
/* put string to display */
lcd_puts("Hello");
}
}
Die lcd.h ist im Anhang, das Datenblatt vom Display findet man hier:
http://www.reichelt.de/?;ACTION=7;LA=6;OPEN=1;INDEX=0;FILENAME=A500%252FLCD204B%2523DIS.pdf;SID=28eZ2g9X8AAAIAAD3FX-05c8c0e81798948f43246762bbc852828
Nicht zu vergessen ist, dass ich den Kontrast vom Display schon
eingepegelt habe, das funktioniert. An einem anderen uC mit anderem
Programm geht es auch, daher ist die Hardware ok.
Einen zweiten uC habe ich auch schon genommen.
Mein Problem:
Schalte ich ein, dann erscheinen auf dem Display in Zeile 1 und 3
schwarze Balken, diese verschwinden nach ca. 1 Sekunde. Sollte laut
Programm auch so sein. D.h. init sollte funktionieren. Jetzt habe ich
nur das Problem, dass es mir einfach nichts schreiben will. Was mache
ich da falsch, was muss ich da einstellen?
Sämtliche alten Posts hier im Forum bringen mich einfach nicht weiter
und nach nun fast 8 Stunden wollt ich Euch mal um Hilfe bitten.
Danke für irgendwelche Tipps hierzu,
Grüße aus Kassel, Pascal