Forum: Mikrocontroller und Digitale Elektronik Sleep mit int0 aufwecken


von pi_user (Gast)


Lesenswert?

Guten Abend,
Habe einen Atmeg88 und möchte diesen aus den Power-Down Mode mit den Any 
logical change on INT0 generates an interrupt request. aufwecken!
Verstehe aber nicht ganz genau aus dem Datenblatt ob das geht!


Lg

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Nö, geht nicht. Aber der Pinchange Interrupt am gleichen Pin läuft 
flankengetriggert auch in Sleepmodes - nimm den.
Im Datenblatt ist das ein wenig merkwürdig ausgedrückt: Im Powerdown 
Mode gehen INT0 und INT1 nur bei Level- und nicht bei Flanken 
Interrupts.

: Bearbeitet durch User
von pi_user (Gast)


Lesenswert?

Matthias S. schrieb:
> Nö, geht nicht. Aber der Pinchange Interrupt am gleichen Pin läuft
> flankengetriggert auch in Sleepmodes - nimm den.
> Im Datenblatt ist das ein wenig merkwürdig ausgedrückt: Im Powerdown
> Mode gehen INT0 und INT1 nur bei Level- und nicht bei Flanken
> Interrupts.

Also kann ich bei steigender Flanke den Atmega 88 aufwecken?
Danke Lg

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

pi_user schrieb:
> Also kann ich bei steigender Flanke den Atmega 88 aufwecken?

Ja, und auch bei fallender Flanke - Ein Pinchange wird bei jedem 
Wechsel ausgelöst.

von pi_user (Gast)


Lesenswert?

Matthias S. schrieb:
> Ja, und auch bei fallender Flanke - Ein Pinchange wird bei jedem
> Wechsel ausgelöst.

Und das auch im Power Down Mode?
Sorry bin etwas verwirrt!

Danke Lg

von H.Joachim S. (crazyhorse)


Lesenswert?

When the SM2..0 bits are written to 010, the SLEEP instruct
ion makes the MCU enter power-down mode. In this mode, the external 
oscillator is stopped, while the external interrupts, the 2-
wire serial Interface address watch, and the Watchdog continue operating 
(if enabled). Only an external reset, a watchdog system reset, a 
watchdog
interrupt, a brown-out reset, a 2-wire serial interface address match, 
an external level interrupt on INT0 or INT1, or a pin change interrupt 
can wake up the MCU.

Das ist doch eigentlich recht verständlich.

von pi_user (Gast)


Lesenswert?

H.Joachim S. schrieb:
> Das ist doch eigentlich recht verständlich.


Für mich leider nicht! Aber wenn ihr mir bestätigt das eine 
Flankenerkennung geht dann bin ich Zufrieden!

Lg

von Max M. (jens2001)


Lesenswert?

pi_user schrieb:
> wenn ihr mir bestätigt das eine
> Flankenerkennung geht

Nein, geht nicht!


Aber warum brauchst du unbedingt "Flankenerkennung"?

von Carl D. (jcw2)


Lesenswert?

pi_user schrieb:
> H.Joachim S. schrieb:
>> Das ist doch eigentlich recht verständlich.
>
>
> Für mich leider nicht! Aber wenn ihr mir bestätigt das eine
> Flankenerkennung geht dann bin ich Zufrieden!
>
> Lg

Der altbekannte INT0 kann ohne Takt, z.b. PowerDown, keine Flanke 
erkennen. Wenn der aber auf High-Level reagiert und vorher hatte man 
Löw-Level, dann hast du fast den gewünschten Effekt. Fast bedeutet, die 
ISR wird gerufen, bis der INT0 disabled wird, oder er nicht mehr auf 
"Trigger On High-Level" steht.

PinChange-Int braucht für Flanken-Erkennung keine Takt. Vermutlich wird 
einfach das Signal per Buffer-Gate-Laufzeit verzögert mit dem Original 
XORed. Und als Nachteil hat man Trigger auf beiden Flanken.

von H.Joachim S. (crazyhorse)


Lesenswert?

Es geht nicht über INT0, aber über PCINT18, liegen auf dem gleichen Pin.
Also:
-zusätzlich eine ISR für PC_INT2 (Interruptvektor u.a.für PCINT18), dort 
dann den Pinchange-Int komplett wieder ausschalten.

Vor power-down den PCINT18 aktivieren:
PCICR=(1<<PCIE2) | (0<<PCIE1) | (0<<PCIE0);
PCMSK2=(0<<PCINT23) | (0<<PCINT22) | (0<<PCINT21) | (0<<PCINT20) | 
(0<<PCINT19) | (1<<PCINT18) | (0<<PCINT17) | (0<<PCINT16);

Oder so ähnlich :-)

Direkt mit dem INT0 oder 1 geht es jedenfalls nicht, wenn der 
flankengesteuert arbeitet.

: Bearbeitet durch User
von pi_user (Gast)


Lesenswert?

Vielen Dank aber das mit dem Asynchronen Takt hat mich verwirrt!

LG

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.