Hallo Leute,
ich bin fast am verzweifeln...
und zwar ich habe einen glcd von Kent in der Auflösung 240x160
http://www.sparkfun.com/commerce/product_info.php?products_id=9560
der über SPI mit einem ARM 7 (LPC2368) Prozessor kommunizieren soll.
Da dieses Kent Display ein sog. cholesteric liquid crystal display ist
(Bild bleibt bestehen auch wenn kein Strom mehr fließt) hab ich sog.
pressure points auf dem display, die laut Datenblatt mit dem Befehl 0x2A
gelöscht werden können.
Zu meiner Frage:
Nach meiner Initialisierung:
1 | void initglcd(void)
|
2 | {
|
3 | unsigned char Register;
|
4 |
|
5 | PINSEL0 = 0x00000000;
|
6 | PINSEL1 = 0x00000000;
|
7 |
|
8 |
|
9 | PINSEL0 |= 0xC0000000; // SCK 0 Port 0.15
|
10 |
|
11 | PINSEL1 |= 0x0000003F; // Miso, Mosi, CS
|
12 |
|
13 | S0SPCCR = 12; // Clock Counter (1MHz)
|
14 |
|
15 | S0SPCR = 0x00; // Control Register Löschen
|
16 | S0SPCR |= 0x28;
|
17 |
|
18 | if (S0SPINT & 0x01) // Wenn das Interruptflag gesetzt ist
|
19 | {
|
20 | S0SPINT = 0x01; // Interruptflag zurück setzen
|
21 | }
|
22 |
|
23 | // Statusregister laden
|
24 |
|
25 | Register = S0SPSR; // Register lesen
|
26 | Register = S0SPDR; // Empfangene Daten Speichern
|
27 |
|
28 | }
|
versuche ich über die Funktion spi_transfer(0x2A) die Adresse an das
Display zu Übertragen, leider ohne Erfolg.
1 | char spi_transfer(volatile char data)
|
2 | {
|
3 | S0SPDR = data;
|
4 | while (!(S0SPSR & 0x80));
|
5 | return S0SPSR;
|
6 | }
|
Es tut sich rein gar nichts am Display. Die einzige Reaktion die ich bis
jetzt am Display erkennen konnte ist, dass sich der BUSY Pin von 0 auf
3,3V kurzzeitig anhebt nach einem RESET.
Die Pinsel0 und Pinsel1 sind richtig angesprochen, nur bei dem Control
Register bin ich mir nicht ganz sicher.
Reicht dieser Code normalerweise aus um diese Adresse zu empfangen oder
vergesse ich da noch was?
Wäre klasse wenn mir einer helfen könnte...
Danke schon mal
VG Marc K.