Hallo, kennt sich jemand näher mit AVR-Controllern aus? Ist es möglich, ein Wakeup durchzuführen, wenn ein Pin am AVR ein HI- oder Lo-Signal erhält? Die Leitung zum Pin kennt nämlich drei Zustände: -hochohmig -HI -LO Der Controller soll nur aufwachen, wenn der Zustand HI oder LO eintritt, bei "hochohmig" soll er "weiterschlafen".
TGM schrieb: > kennt sich jemand näher mit AVR-Controllern aus? Nein gibt es hier kaum. Aber man kann sich in Datenblättern und hier http://www.mikrocontroller.net/articles/Hauptseite schlau machen.
Hi, Auf die Frage "Ist es möglich, ein Wakeup durchzuführen, wenn ein Pin am AVR ein HI- oder Lo-Signal erhält?" bezogen, ja ein 8Bit AVR µC kann dass. Auch wenn seine Signalquelle drei Zustände kennt.
Uwe S. schrieb: > Hi, > > Auf die Frage "Ist es möglich, ein Wakeup durchzuführen, wenn ein Pin am > AVR ein HI- oder Lo-Signal erhält?" bezogen, ja ein 8Bit AVR µC kann > dass. > > Auch wenn seine Signalquelle drei Zustände kennt. Wenn das Signal von Low nach High wechselt oder andersrum, stimmt das. Deswegen heißt die Funktion auch "PinChange". Auf den Zustand triggern geht nicht sondern nur auf den Wechsel.
TGM schrieb: > Der Controller soll nur aufwachen, wenn der Zustand HI oder LO eintritt, > bei "hochohmig" soll er "weiterschlafen". Das geht nur mit einem ADC Eingang, da ein normaler AVR Eingang nur 2 Zustände kennt, High oder Low. Dafür sorgt ein Schmitt Trigger Eingang. Aber ein ADC, der auch 'mitten dazwischen' erkennt, kann nicht im Sleep Modus abgefragt werden, sondern nur im sogen. 'Noise Reduction' Modus. Dabei schläft alles, aber nicht der ADC.
Erwin D. schrieb: > Auf den Zustand triggern > geht nicht sondern nur auf den Wechsel. Doch, das geht schon mit den externen Interrupts. Diese können nicht nur auf Flanken sondern, beim Atmega328 z.B., auch auf Zustand LOW einen Interrupt auslösen. Allerdings ist dieser Interrupt nicht in allen Sleep-Modes verfügbar, genaueres ist im entsprechenden Datenblatt nachzulesen. Interessanter finde ich aber eigentlich den Zustand High-Z am Eingang des AVRs zu erkennen. Da muss wohl einen gesonderte Logik vor den Eingangspin, oder? Zumindest hab ich spontan keine Idee wie ein AVR das feststellen kann.
Naja, den internen Pullup einschalten.. Dann wird hochohmig zu einen High. Nicht unterscheidbar von einem High. Meist verwendet man die Sleepmodi fuer Stromsparanwendungen, und dann sollte man keine solchen Spielchen bringen. Denn ein Pullup zieht Strom. Ein undefinierter Eingangs-Pin zieht auch Strom.
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.