Hallo,
meine bisherigen Versuche den LPC2148 in den power down Modus zu
versetzen gingen leider schief. Lange Recherchen im Netz haben mir
leider auch nicht weitergeholfen, deshalb dieser Thread.
Der Unterprogramm-code:
1 | void power_down()
|
2 | {
|
3 | PINSEL0 |= 0xC000; // PIN-funktion fuer P0.7 setzen (EINT2)
|
4 |
|
5 | INTWAKE = 0x04; // P0.7 als interrupt-quelle
|
6 | EXTMODE = 0x04; // fuer flanke konfigurieren
|
7 | EXTPOLAR = 0x04; // und konfigurieren fuer steigende flanke
|
8 | VICIntEnClr = 0xFFFFFFFF; // alles bisherige loeschen
|
9 | VICIntSelect = 0x00000000; // jetzt alle interrupts IRQ
|
10 | VICVectAddr0 = (unsigned long)isr; // adresse fuer wakeup-code setzen
|
11 | VICVectCntl0 = (0x20 | 16); // benutze EINT2
|
12 | VICIntEnable = 0x00010000; // enable
|
13 |
|
14 | PCON = 0x02; // power down LPC
|
15 | return;
|
16 | }
|
17 |
|
18 | void __attribute__ ((interrupt("IRQ"))) isr(void)
|
19 | {
|
20 | EXTINT = 0x04; // bit wieder loeschen
|
21 |
|
22 | VICVectAddr = 0;
|
23 | }
|
Zum "Wecken" soll der Interrupt-Pin EINT2 verwendet werden.
Im Hauptprogramm wird nur die Clock initialisiert (60Mhz), UART
initialisiert, Pin-Funktionen für UART gesetzt und die power_down()
Funktion aufgerufen.
Was habe ich vergessen oder falsch gemacht?
Danke im vorraus,
Fabian