Hallo. Bin auf den ARM umgestiegen und habe mir dazu das Olimex Board mit dem LPC2378 zugelegt. So weit so gut. Habe mich nun in Yagarto eingearbeitet und auch die ersten Sachen zum Laufen gebracht. Aber das IAR Beispiel für das Display ist ja Hammer. Zig Dateien die da eingebunden sind und und und. Das zu portieren damit ich es unter Eclipse zum laufen bekomme übersteigt momentan noch mein Wissen. :( Hat jemand schon das LCD auf dem besagten Board zum laufen bekommen mit WinArm oder für Yagarto? Oder kennt wer nenn Link wo man etwas findet? Bin ein wenig am verzweifeln. Google Suche hat mich auch nicht weitergebracht, möglicherweise falsch gesucht. Hoffe jemand kann mir helfen. Danke Sebastian
Der IAR/Olimex Originalcode unterliegt einem relativ restriktiven Copyright und ich wurde gebeten, keine Portierungen ohne Einverständnis von IAR zu veröffentlichen. Dies habe ich bisher nicht "beantragt". Die Anpassung des IAR/Olimex-Codes an gcc ist in der Tat nicht ganz simpel, da eine IAR-Erweiterung genutzt wird, um Bitfelder auf Register zu "mappen", die man für gcc in "Bitmanipulation" umschreiben musste. Kann ich in dieser Stelle nur anbieten, bei konkreten Problemen weiterzuhelfen. Weiterhin ist die Ansteuerung der Displays auch im "Nokia Tutorial" von Jim Lynch beschrieben. Zwar in Verbindung zur AT91SAM7 aber Anpassung nach LPC2k sollte relativ simpel sein.
Danke für die Antwort. Dann werde ich mich mal mit dem Tutorial von Jim Lynch auseinandersetzen. Ist denke ich eine sehr gute Basis für den Start. (zumindestens weiß ich schonmal dass es sich um ein Nokia Display handelt).
Habe versucht das Display zum Laufen zu bekommen, mit Hilfe des besagten Tutorials und des Beispiels von IAR. Leider ohne Erfolg. Habe nun nochmals von vorne begonnen, jede Hilfe wird dankbar angenommen, also wenn jemand auf die SPI Initialsierung und die SPI-Write-Data und SPI-WRite-Command Anweisungen nen Blick werfen könnte. Schonmal viele Dank. Sebastian.
1 | void SPIInit( void ) |
2 | {
|
3 | SCS |= (1UL<<0); // set GPIOM in SCS for fast IO |
4 | |
5 | // Assign GPIO to SSP0 - SCK, MOSI, MISO
|
6 | PINSEL3 |= 0x00000300; // SCK0 - BIT [9:8] |
7 | PINSEL3 |= 0x0000C000; // MISO0 - Bit[15:14] |
8 | PINSEL3 |= 0x00030000; // MOSI0 - Bit [17:16] |
9 | |
10 | // Chip select
|
11 | FIO1DIR |= LCD_CS_MASK; //P1.21 SSEL0 |
12 | FIO1SET |= LCD_CS_MASK; //LCD CS set |
13 | |
14 | PCONP |= (1UL<<21); // PCPCONP Bit 21 für SSPO |
15 | SSP0CR1 = 0; |
16 | SSP0CR1 &= (~0x02); // Bit 1 SSE = 0 disabled |
17 | SSP0CR1 &= (~0x01); // Disable Loop Back Mode |
18 | SSP0CR1 &= (~0x04); // Enable Master Mode |
19 | |
20 | SSP0CR0 = 0; |
21 | SSP0CR0 &= (~0x0030); // Enable SPI Mode |
22 | SSP0CR0 &= (~0x0040); |
23 | SSP0CR0 &= (~0x0080); |
24 | |
25 | SSP0IMSC = 0; // Disable all interrupts |
26 | SSP0DMACR = 0; // Disable DMA |
27 | SSP0CR1 |= (1UL<<1); // SSP enable |
28 | |
29 | for (uint32_t i = 0; i < 8; i++ ) |
30 | {
|
31 | volatile uint32_t Dummy = SSP0DR; // clear the RxFIFO |
32 | }
|
33 | |
34 | SSP0CPSR = 0x24; // 2Mhz |
35 | SSP0CR0 = ((SSP0CR0&(~0x0007))|(0x0008)); // 9 Bit Transfer Value 1000 Bit[3:0] |
36 | }
|
1 | void WriteSpiCommand(volatile unsigned int command) |
2 | {
|
3 | // wait for the previous transfer to complete
|
4 | while((SSP0SR & (1<<0)) == 0); // wait till transmit FIFO ist empty |
5 | //wait 5ms
|
6 | delay((void*)50); |
7 | |
8 | // clear bit 8 - indicates a "command"
|
9 | command = (command & ~0x0100); |
10 | |
11 | // send the command
|
12 | SSP0DR = command; |
13 | }
|
14 | |
15 | void WriteSpiData(volatile unsigned int data) |
16 | {
|
17 | // wait for the transfer to complete
|
18 | while((SSP0SR & (1<<0)) == 0); |
19 | //wait 5ms
|
20 | delay((void*)50); |
21 | |
22 | // set bit 8, indicates "data"
|
23 | data = (data | 0x0100); |
24 | |
25 | // send the data
|
26 | SSP0DR = data; |
27 | }
|
hi, ist ja schon ne weile her, aber hast dus zum laufen bekommen? ich hab exakt das gleiche problem wie du (: Grüße
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.