www.mikrocontroller.net

Forum: Compiler & IDEs Mit dem INT1 aus dem SleepMode


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe folgendes Problem:

Ich möchte meinen Prozessor (ATMEGA32) aus dem Schlafmodus 
(SLEEP_MODE_PWR_DOWN) mit dem Interrupt 1 holen (über einen Taster).
Nun lässt sich der Prozessor nur aus dem Schlaf holen wenn ich den INT1 
so einstelle das ein low-level-of int1 ihn aufweckt. stell ich aber auf 
eine rising oder falling edge ein, geht garnichts. Ich muss jedoch erst 
auf eine falling edge reagieren.

Vergesse ich irgend etwas einzustellen oder geht das garnicht anders?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Nun lässt sich der Prozessor nur aus dem Schlaf holen wenn ich den INT1
>so einstelle das ein low-level-of int1 ihn aufweckt.

Ja, geht auch nur mit Low Level Interrupt.  Der Grund dafür ist, dass 
der µC im Power Down Modus keinen Takt hat, und ohne Takt er keine 
Flankenänderung detektieren kann.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Patrick (Gast)

>so einstelle das ein low-level-of int1 ihn aufweckt.

Ist doch gut, wo ist das Problem?

>stell ich aber auf
>eine rising oder falling edge ein, geht garnichts.

Was logisch ist, wenn man das Datenblatt liest.

> Ich muss jedoch erst auf eine falling edge reagieren.

Warum?

>Vergesse ich irgend etwas einzustellen oder geht das garnicht anders?

Geht nicht anders. Ausser du nimmst einen der neueren AVRs, die haben an 
den meisten Pins einen Pin Change Interrupt, der kann auch bei 
beliebigen Flanken aus dem Power Down Mode wecken.

MFG
Falk

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, ok dann muss ich mir etwas ausdenken.

Danke trotzdem

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich muss jedoch erst auf eine falling edge reagieren.

Offensichtlich hast Du noch nicht verstanden, dass Du diese Aufgabe mit 
dem Low Level Interrupt problemlos lösen kannst. Um zu verhindern, dass 
der Level-Interrupt nach dem Aufwachen des µCs fortlaufend ausgelöst 
wird, gibt es ein probates Mittel: Man deaktiviert ihn einfach noch im 
Interrupthandler. Dann kommt das Ganze einem H-->L-flankengetriggerten 
Interrupt gleich.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ATmega324P nehmen, dann gehts.


Peter

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.