www.mikrocontroller.net

Forum: Compiler & IDEs Sleep-Mode mit externem IR beenden


Autor: Roland Röck (Gast)
Datum:

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

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Flankengetriggerte externe Interrupts können nicht aus dem Tiefschlaf
wecken: die Flankenerkennung benötigt einen laufenden Taktgenerator.

RTFdatasheet...

Autor: Roland Röck (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verbindlichsten Dank für die rasche Klärung!

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.