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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.