LPC1768 wacht nicht wieder auf

Gast #1875512
Lesenswert?

Hallo,
ich habe ein bisschen mit den Beispielprogrammen von Keil rumgespielt 
und komme auch mit lesen der Datenblätter nicht so ganz weiter.
Und zwar gelingt es mir dne Controller in einen sleep modus zu 
versetzen, jedoch nicht wieder daraus über einen Interrupt aufzuwecken.
Über das RESET Signal funktioniert es zwar, aber das ist nicht Sinn und 
Zweck.
Das Programm befindet sich im Anhang.

Kurz zur erklärung:
Es läuft ein Lauflicht über 8 LEDs, sobald der Taster für die dne Power 
down Modus gedrückt wird P3[25] legt der Controller sich schlafen, 
sobald P2[10] gedrückt wird soll er wieder aufwachen (Externes 
Interrupt)

Vielen Dank für die hilfe =)
Angehängte Dateien:
Gast #1875640
Lesenswert?

1
#include "lpc17xx.h"
2
#include "type.h"
3
#include "extint.h"
4

5

6
void main(void)
7
{
8
/***********PINs einstellen**********/
9

10
/*************LEDs******************/
11

12
  LPC_GPIO2 -> FIODIR |= 0xFF;    // P2[0..7] Ausgänge
13
  LPC_GPIO2 -> FIOCLR |= 0xFF;    // alle Pins ausschalten
14

15
/************Taster****************/
16

17
  LPC_GPIO3 -> FIODIR &= (1<<25);   // P3[25] Eingang
18

19
/************Interrupt*************/
20

21
LPC_PINCON->PINSEL4 &= ~(0x03<<20);   // Reset des Pins
22
LPC_PINCON->PINSEL4 |=  (0x01<<20);  // Config P2.10 = EINT0
23
LPC_GPIOINT->IO2IntEnF = 0x200;    // Port2.10 is falling edge. 
24
LPC_SC->EXTMODE = EINT0_EDGE;    // INT0 edge trigger 
25
LPC_SC->EXTPOLAR = 0;      // INT0 is falling edge by default
26
NVIC_EnableIRQ(EINT0_IRQn);       // Enable IRQ for EINT0
27

28
  while(1)
29
  {
30
    if (!(LPC_GPIO3 -> FIOPIN & (1<<25)))
31
    {
32
      LPC_GPIO2 -> FIOPIN = 0xFF;
33
      SCB -> SCR = 0x04;
34
      __WFI();
35
    }
36

37
  }
38

39
}
40

41
void EINT0_IRQHandler (void)
42
{
43
  LPC_SC->EXTINT = EINT0;  //clear interrupt 
44
  LPC_GPIO2 -> FIOCLR = 0xFF;
45
}

So hier nocheinmal in einer kürzeren Form selbes Problem

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren