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?
>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.
@ 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
>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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.