EA dog 204-a Initialisierung

Gast #4620691
Lesenswert?

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
(Firma: matzetronics) #4620749
Lesenswert?

Hannes schrieb:
> PORTE.OUTCLR = 0b00000011;  // E und Reset auf low

Hannes schrieb:
> PORTE.OUTSET = 0b00001000;  //E high

Du musst dich aber schon entscheiden, wo E denn nun angeschlossen ist. 
Das gleiche gilt übrigens für RS. Einmal ist E lt. der ersten Zeile auf 
Bit 0 oder 1 und dann lt. der anderen Zeile auf Bit3.
Gleich dadrunter steht
> PORTE.OUTCLR = 0b00000010;  //RS auf Low, damit nicht geschreiben wird
was wieder auf Bit 1 zeigt.

Mach dir lieber ein paar defines, dann wird es auch für dich selbst 
klarer.

Miss dann auch mal die Spannung des Boosterteiles. Solange an Vout keine 
Spannung liegt, ist der Booster nicht initialisiert.
(Firma: matzetronics) #4621333
Lesenswert?

Hannes schrieb:
> Kann ja sein, dass
> da immer noch was nicht richtig ist.

Ja, das kann sein. Es kann aber auch ein Verdrahtungsfehler sein. Also 
reiche dch mal den Schaltplan nach. Es macht auch im Moment überhaupt 
keinen Spass, sich durch deinen Code zu wühlen, denn das ist alles sehr 
unübersichlich mit deinen Bitmustern und fehlerträchtig.
Wir wissen doch nicht mal, wie nun alle Pins deines Displays am XMega 
hängen. Da fehlt jeglicher Kommentar oder ist sogar noch irreführend.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren