Sleep-Mode mit externem IR beenden

Gast #76154
Lesenswert?
• ▲
▼
Hallo, ich hab ein Problem mit dem Aufwecken aus dem
Power-Down-Sleep-Mode per externem Interrupt.

Was läuft falsch,
die Funktion go_Sleeping() versetzt meinen 8535 zwar wunschgemäß in
Schlaf. Über eine fallende Flanke an INT0 sollte er dann wieder
aufgeweckt werden.

Das funktioniert bisher nur bei levelgetriggertem ext.IR. jedoch nicht

mit flankengetriggertem. Der Fehler entsteht mit dem Aufruf
sleep_mode(), denn, wenn ich es durch for(;;); ersetzte wird sehr wohl
auch flankengetriggerter IR ausgelöst.

Danke für eure Hilfe.



SIGNAL(SIG_INTERRUPT0){ debugprint("INTERRUPT0 ausgelöst");}

void go_Sleeping(void)
{
  #ifdef MIT_LCD_SLP
  AT_LCDPOS_SLP("sl"); // Kontrollausgabe
  #endif

  MCUCR = 1<<ISC01;  // falling edges on int0
  //MCUCR = 0;  // low level of INT1 generates an IR ==> so gehts
immer!
  GIFR = 1<<INTF0;   // IR-request-flag rücksetzen
  set_sleep_mode(SLEEP_MODE_PWR_DOWN);
  enable_external_int(1<<INT0);   // oder GIMSK = 1<<INT0;
  sleep_mode();  // ersetzt durch for(;;); und INT0 trigger auch mit der
Flanke
  FUEGE_EIN_ZEHN_NOPS;
  enable_external_int(0);

  #ifdef MIT_LCD_SLP
  AT_LCDPOS_SLP("wk"); // Kontrollausgabe
  #endif
}

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.