mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik LPC1768 wacht nicht wieder auf


Autor: Jannik (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 =)

Autor: Jannik (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#include "lpc17xx.h"
#include "type.h"
#include "extint.h"


void main(void)
{
/***********PINs einstellen**********/

/*************LEDs******************/

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

/************Taster****************/

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

/************Interrupt*************/

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

  while(1)
  {
    if (!(LPC_GPIO3 -> FIOPIN & (1<<25)))
    {
      LPC_GPIO2 -> FIOPIN = 0xFF;
      SCB -> SCR = 0x04;
      __WFI();
    }

  }

}

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

So hier nocheinmal in einer kürzeren Form selbes Problem

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.