mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMEGA wacht nicht aus "Power-Down" auf


Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich bekomme meinen uC nicht mehr aus dem Power Down Mode und hoffe auf 
ein paar Tips:

Ich möchte den ext. INT1 verwenden um den MEGA168 wieder aus dem Power 
Down Mode aufzuwecken. Dazu konfiguriere ich diesen auf "any logical 
change":
EICRA  &= ~(1<<ISC11);    // Setze Interrupt  INT1 Sense Control auf "Any logical change" (01)

EICRA  |=  (1<<ISC10);       
EIFR  |=  (1<<INTF1);    //Aktiviere ISR

EIMSK  &= ~(1<<INT1);    //Deaktiviere externen Interrupt INT1 by default

Wenn ich den uC schlafen schicke, aktivere ich den externen Interrupt:
  // Watchdog abschalten um autom. Reset (=Neustart) zu vermeiden
  wdt_disable();              

  //Alle Ausgänge abschalten
  PORT_OUT1    &= ~(1<<OUT1);        
  PORT_OUT2    &= ~(1<<OUT2);        

  // Aktiviere externen Interrupt um ein Aufwachen zu ermöglichen
  EIMSK  |=   (1<<INT1);    

  //Herunterfahren
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  sleep_enable();
  sleep_cpu();    // BYE BYE!

Wenn nun am INT 1 wieder ein Signal anliegt (PWM mit 1...2ms high Phase) 
soll der uC wieder aufwachen, siehe ISR:
ISR(INT1_vect)
{
  //Deaktiviere externen Interrupt INT1 wieder
  EIMSK  &= ~(1<<INT1);  
}

Leider wacht hier niemand auf... Die Interrupts sind sicher aktiviert.
Kann mir jemand erklären wo es hängt?

Autor: MO (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bei Anwendung von sleep_cpu() müssen Interrupts also bereits freigeben sein 
>(sei()), da der Controller sonst nicht mehr "aufwachen" kann.

Quelle
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Evtl. ist ein fehlendes SEI() der grund...

MfG

Autor: inti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wacht der nur bei Level-Int auf?
nicht mit "any logical change"?

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.