Forum: Compiler & IDEs Mit dem INT1 aus dem SleepMode


von Patrick (Gast)


Angehängte Dateien:

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?

von Gast (Gast)


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.

von Falk B. (falk)


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

von Patrick (Gast)


Lesenswert?

Hm, ok dann muss ich mir etwas ausdenken.

Danke trotzdem

von Gast (Gast)


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.

von Peter D. (peda)


Lesenswert?

ATmega324P nehmen, dann gehts.


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.