Forum: Mikrocontroller und Digitale Elektronik LPC1768 wacht nicht wieder auf


von Jannik (Gast)


Angehängte Dateien:

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 =)

von Jannik (Gast)


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

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
Noch kein Account? Hier anmelden.