Tiny85 und Aufwachen aus PowerDown

Gast #2488254
Lesenswert?

Um meine noch sehr dürftigen Kenntnisse in µCs und deren Programmierung 
zu erweitern, übe ich gerade an einem Langzeit-Monoflop (man könnte auch 
Treppenlichtautomat sagen). Der Übungskandidat ist ein ATTiny85.
An PB0 ist ein Taster nach GND angeschlossen, PB2 bedient eine LED. 
Drücken der Taste schaltet die LED an, nach Ablauf des Timers wird sie 
wieder ausgeschaltet. Soweit, so gut.

In dem Zusammenhang wollte ich dann den Tiny85 auch in den Powerdown 
Mode schicken. Das tut er zwar, aber ich bekomme ihn anschließend nicht 
wieder wach - bzw. nur mit Reset.

Laut Datenblatt ist der PB0 auch der PCINT0 und als Levelinterrupt 
nutzbar. Nach erneutem Bedienen der Taste an PB0 soll ein LOW-Pegel an 
PB0 über den externen Interrupt INT0 den Tiny wieder aufwecken und das 
Monoflop neu starten.
Was habe ich da noch nicht beachtet oder falsch verstanden?
Eigentlich hätte ich erwartet, dass die Befehle
1
 set_sleep_mode(SLEEP_MODE_PWR_DOWN);  // 
2
 sleep_mode();              // wacht nicht mehr auf :-(
und die Installation der ISR (INT0_vect) ausreichen müssten.
Auch die Bedienung von MCUCR und GIMSK brachte keine Änderung.

Im Anhang das komplette Progrämmchen.
Angehängte Dateien:
Gast #2488275
Lesenswert?

Verwirrter Anfänger schrieb:
> Kann es sein, dass du INT0 und PCINT0 verwechselst?
Hmm, sieht ganz so aus.

> PB0 ist PCINT0 (pin change interrupt) während PB2 der INT0 interrupt
> ist.
Danke, ja, ich habe übersehen, dass an PB2 zusätzlich noch INT0 
dransteht.
Jetzt sehe ich es auch :-)!

> Nur INT0 kann aus den tiefsten Schlafmodi aufwecken.
Das war schon klar, ich hab aber den Pin, an dem INT0 dransteht, nicht 
gefunden - und das bei nur 8 Pins. Schäm!

Herzlichen Dank für deinen Tipp.
Gast #2488294
Lesenswert?

@herrmueller
Danke.
Das hatte ich auch schon so verstanden und es war meine Absicht, mit dem 
Level-Interrupt zu arbeiten. Nur hatte ich nach Entdecken des PCINT0 
fälschlicherweise angenommen (und nicht weiter gesucht), dass der auch 
die INT0-Funktion hat.
Ich habe was gelernt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren