Hallo,
Was ist an PA5 alias LCD_Power angeschlossen? Doch nicht etwa die
Stromversorung des Displays! Wenn doch, dann musst du die natürlich
einschalten bevor du lcd_init() aufrufst!
Zu langsam getippt - aber Ursache bestätigt!
Sascha
Hallo Sascha,
danke für deine schnelle Antwort.
Das ich das Ding vorher Einschalten muss, da hätte ich auch selber drauf
kommen können.
Leider bleibt das Display weiterhin "leer".
ich hab den Code mal angepasst und das Timer-Zeugs rausgeschmissen um es
für dieses Problem übersichtlicher zu halten.
main.c
------
1
intmain(void)
2
{
3
// LEDS
4
DDRD|=(1<<DDRD3);
5
DDRD|=(1<<DDRD4);
6
DDRD|=(1<<DDRD5);
7
DDRD|=(1<<DDRD6);
8
9
// LCD
10
DDRA|=(1<<DDRA4);// Backlight
11
DDRA|=(1<<DDRD5);// LCD Power
12
13
// lcd einschalten
14
PORTA|=(1<<LCD_POWER);
15
16
// Display initialisieren
17
lcd_init();
18
lcd_pos(0,1);
19
lcd_text((u8*)"Zeile 1");
20
21
while(1)
22
{
23
PORTD^=(1<<LED1);
24
_delay_ms(100);
25
}
26
}
Noch eine Zusatzinfo, machmal verschmieren die Schwarzen Balken nach dem
Flashen, sind also nur halb zu sehen. Sieht aus wie ein Farbverlauf von
Transparent nach Schwarz, ich versuche ob ich davon mal ein Bild machen
kann.
Sascha Weber schrieb:> Im übrigen keine gute Idee GND abzuschalten, da über die anderen Pins> ohne entsprechende Vorkehrung immer irgendwo Masse herkommt!
Diese Funktion ist optional und nicht wichtig, wenns nicht hinhaut muss
ich es das nächste mal anderst machen.
Nach dem einschalten des LCD muß du natürlich noch einen Moment warten
bis die Initialisierung erfolgen kann.
Die genaue Zeit (ca. 20ms) steht im Datenblatt zum LCD.
In einer meinen Schaltungen versorge ich LCD-VCC direkt von einem Port.
Die paar mA die so ein LCD verbraucht sollte für den Port kein Problem
sein.
Hallo Martin
Martin Wende schrieb:> JTAG Fuse noch aktiv?
Die sollte aus sein:
LowFuse: 0xFF
HighFuse: 0xC9
Martin Wende schrieb:> Falsche 4 Datenbits am Display angeschlossen?
Das kanns auch nicht sein, DB4-DB7 (Pin 11-14) wurden verwendet.
überbrücke doch mal deinen Transistor in der Masseleitung mit einem
Stück Draht. Für einen Versuch wirst du den Stromverbrauch aushalten
können. Nicht, dass du durch einen schlecht schaltenden Transistor ein
Masseproblem hast.
Hallo Georg
Georg G. schrieb:> überbrücke doch mal deinen Transistor in der Masseleitung mit einem> Stück Draht.
Hab ich gemacht, am Display liegen nun konstant 5V an (zwischen Pin1 und
Pin2)
@Sascha
ich hab Pin3 nun auf GND gelegt (testhalber) um die vollen Kontrast zu
haben.
Ergebnis:
Das Display zeigt nun nach dem Flashen einen dünnen schwarzen Strich an,
der dann mit der Zeit verschwindet.
Willy schrieb:> ich hab Pin3 nun auf GND gelegt (testhalber) um die vollen Kontrast zu> haben.
Den höchsten Kontrast bekommst du nicht bei GND sondern bei xV,
ausprobieren.
> Ergebnis:> Das Display zeigt nun nach dem Flashen einen dünnen schwarzen Strich an,> der dann mit der Zeit verschwindet.
Da würde ich auf ein Kontaktproblem tippen.
Ohne jede Initialisierung, nur nach Anlegen der Betriebsspannung sollte
das Display ein oder zwei Reihen dunkle Rechtecke zeigen. Diese Anzeige
sollte stabil sein.
Willy schrieb:> Wo denkst hab ich mich vertan?
das kann man nicht sagen, da dein Displayanschluss nur 12 Pins hat, das
Display selbst aber 16 - wie das verkabelt ist weißt nur Du!
Sascha