Hallo,
ich hoffe ihr könnt mir helfen!!
Ich versuche verzweifelt das EA DOG 204-A an meinen ATXMEGA64A3U zu
initialisieren, doch es tut sich nichts auf dem Display.
Hier die Codeschnipsel:
1 | //Initialisierung des Displays
|
2 | void LCD_init (void)
|
3 | {
|
4 |
|
5 | _delay_ms(100);
|
6 | PORTE.OUTSET = 0b00000000; // E,RS,RW auf low
|
7 | _delay_ms(1);
|
8 | PORTE.OUTSET = 0b00000001; // Displayreset toggle
|
9 | _delay_ms(10);
|
10 | PORTE.OUTCLR = 0b00000001;
|
11 | _delay_ms(1);
|
12 |
|
13 |
|
14 |
|
15 | LCD_befehl(0x32); //Function set
|
16 | LCD_befehl(0x09); // extendet Function set
|
17 | LCD_befehl(0x06); // Entry mode set
|
18 | LCD_befehl(0x12); //Bias setting
|
19 | LCD_befehl(0x39); //Funktion set
|
20 | LCD_befehl(0x1B); //Internal Devider
|
21 | LCD_befehl(0x6E); //Follower Control
|
22 | LCD_befehl(0x54); //Power control
|
23 | LCD_befehl(0x70); //Contrast set
|
24 | LCD_befehl(0x38); //Function set
|
25 | LCD_befehl(0x0E); //Display on
|
26 | LCD_befehl(0x01); //Clear
|
27 | LCD_befehl(0x02); //Curser home
|
28 | }
|
29 |
|
30 | //Befehle für das Display
|
31 | void LCD_befehl(uint8_t befehl)
|
32 | {
|
33 | PORTE.OUTCLR = 0b00000011; // E und Reset auf low
|
34 | PORTE.OUTCLR = 0b00000010; //RS auf Low, damit nicht geschreiben wird
|
35 | PORTE.OUTCLR = 0b00000100; //RW auf Low
|
36 | PORTF.OUT = befehl;
|
37 |
|
38 | PORTE.OUTSET = 0b00001000; //E high
|
39 | _delay_ms(3);
|
40 | PORTE.OUTCLR = 0b00001000; // E low
|
41 |
|
42 | _delay_ms(10);
|
43 | }
|
Ausgänge sind auch definiert. Ich bekomme sogar die richtigen Signale
wenn ich debugge aber auf dem Display tut sich einfach nicht.
Vielen Dank schonmal,
Gruß Hannes