S65 Display initialisieren (LS020)

OP Persönliche Seite #1331830
Lesenswert?
• ▲
▼
Hallo an alle,

Ich bin gerade beim initialisieren des S65 Displays LS020. Als 
Mikrocontroller verwende ich einen ARM Cortex mit 5MHz SPI Takt.

Leider funktioniert es noch nicht ganz. Im Anhang habe ich einen Bild, 
wie das Display nach der Initialisierung aussieht.
1
void lcd_init(void)
2
{
3
  //reset
4
  LCD_CS_LOW();
5
  LCD_RS_HIGH();
6
  LCD_RESET_LOW();
7
  delay_ms(100);
8
  LCD_RESET_HIGH();
9
  delay_ms(100);
10

11
  lcd_cmd(0xFD, 0xFD);
12
  lcd_cmd(0xFD, 0xFD);
13

14
  delay_ms(50);
15

16
  //init 1
17
  lcd_cmd(0xEF, 0x00);
18
  lcd_cmd(0xEE, 0x04);
19
  lcd_cmd(0x1B, 0x04);
20
  lcd_cmd(0xFE, 0xFE);
21
  lcd_cmd(0xFE, 0xFE);
22
  lcd_cmd(0xEF, 0x90);
23
  lcd_cmd(0x4A, 0x04);
24
  lcd_cmd(0x7F, 0x3F);
25
  lcd_cmd(0xEE, 0x04);
26
  lcd_cmd(0x43, 0x06);
27

28
  delay_ms(7); //important: 7-8 ms
29

30
  //init 2
31
  lcd_cmd(0xEF, 0x90);
32
  lcd_cmd(0x09, 0x83);
33
  lcd_cmd(0x08, 0x00);
34
  lcd_cmd(0x0B, 0xAF);
35
  lcd_cmd(0x0A, 0x00);
36
  lcd_cmd(0x05, 0x00);
37
  lcd_cmd(0x06, 0x00);
38
  lcd_cmd(0x07, 0x00);
39
  lcd_cmd(0xEF, 0x00);
40
  lcd_cmd(0xEE, 0x0C);
41
  lcd_cmd(0xEF, 0x90);
42
  lcd_cmd(0x00, 0x80);
43
  lcd_cmd(0xEF, 0xB0);
44
  lcd_cmd(0x49, 0x02);
45
  lcd_cmd(0xEF, 0x00);
46
  lcd_cmd(0x7F, 0x01);
47
  lcd_cmd(0xE1, 0x81);
48
  lcd_cmd(0xE2, 0x02);
49
  lcd_cmd(0xE2, 0x76);
50
  lcd_cmd(0xE1, 0x83);
51

52
  delay_ms(50);
53

54
  //init 3
55
  lcd_cmd(0x80, 0x01); //display on
56
}

Nach dem Display-On Kommando schaltet sich das Display ein, so wie es im 
Bild ersichtlich ist.

Weiß jemand was da falsch laufen könnte??

Danke für eure Hilfe.
lg Robert
Angehängte Dateien:
OP Persönliche Seite #1331858
Lesenswert?
• ▲
▼
Das mache ich danach
1
void lcd_draw(unsigned int color)
2
{
3
  ssi1_write((uint8_t)(color>>8));
4
  ssi1_write((uint8_t)color);
5
}
6

7
void fillDisplay(void)
8
{
9
  lcd_cmd(0xEF, 0x90);
10
  lcd_cmd(0x05, 0x00);
11
  lcd_cmd(0x06, 0x00);
12
  lcd_cmd(0x07, 0x00);
13

14
  for(int i=0; i<0xB580; i++)
15
  {
16
    lcd_draw(0);
17
  }
18
  
19
}

Wenn ich diese Funktion danach aufrufe, schaut es aus als ob das Bild 
einmal aktualisiert wird. Danach ist sofort wieder dieser Datenmüll am 
Display.

Weiß jemand warum?

lg Robert

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.