ATMEGA16 wacht nicht aus dem Sleepmode auf

OP #4387408
Lesenswert?
• ▲
▼
Hallo. Ich habe eine simple Schaltung mit einem Button und einer LED 
gebaut. Verkabelt ist alles richtig. Der Controller soll so lange 
schlafen, bis sich der Zustand des Knopfes von LOW auf HIGH ändert und 
dann die LED einmal blinken lassen. Das Problem: Der Interrupt wird 
nicht ausgelöst und somit wacht der Controller nicht auf. Wenn ich MCUCR 
auf 0 setze, wacht er auf. Allerdings möchte ich ja auf eine Änderung 
von LOW auf HIGH warten und nicht auf einen LOW-State. Weiß jemand, 
woran das liegt?
Angehängte Dateien:
#4387417
Lesenswert?
• ▲
▼
@Kim-Yannick Jürs (kim_yannick)

>auf 0 setze, wacht er auf. Allerdings möchte ich ja auf eine Änderung
>von LOW auf HIGH warten

Pin Change Interrupt, das kann der "alte" ATmega16 nicht.

> und nicht auf einen LOW-State.

Das kann er.

> Weiß jemand, woran das liegt?

Alter Controller. Neuere Typen ala ATmega 88/328 etc. können das.
#4387440
Lesenswert?
• ▲
▼
@ Kim-Yannick Jürs (kim_yannick)

>Besitzt der neuere Atmega16A dieses Feature?

Nein. Der ist logisch identisch, hat nur einen kleineren Chip.

> Wenn nicht, gibt es eine
>"Neuauflage" des Atmega16, sprich mit derselben Anzahl IO-Pins,
>Schnittstellen etc.?

Viele. Such dir einen der neueren Typen in DIL40. ATmega164/324/644 & 
Co.
OP #4387481
Lesenswert?
• ▲
▼
MWS schrieb:
> Setz 'nen Pullup, leg' den Taster auf GND, stell' den Int0 auf
> Level, disable ihn in der ISR und enable ihn vor dem Sleep. Das ergibt
> ein ähnliches wie das gewünschte Verhalten.

Das Problem ist, dass ich dann an meiner "richtigen" Schaltung eine 
Menge ändern müsste. Das war nur ein kleines Beispiel.

Wenn es mit dem Atmega644 funktioniert, würde ich ihn nehmen. Ist 
allerdings ziemlich teuer. Für den Preis bekommt man schon einige andere 
Sachen...
#4387504
Lesenswert?
• ▲
▼
@ Kim-Yannick Jürs (kim_yannick)

>Wenn es mit dem Atmega644 funktioniert, würde ich ihn nehmen. Ist
>allerdings ziemlich teuer. Für den Preis bekommt man schon einige andere
>Sachen...

Dann nimm den kleinen ATmega164, der ist identisch, nur wie weniger 
Flash/RAM und damit billiger.
Gast #4388218
Lesenswert?
• ▲
▼
Falk B. schrieb:
> Pin Change Interrupt, das kann der "alte" ATmega16 nicht.

Kim-Yannick J. schrieb:
> Weiß jemand, an welcher Stelle im Datenblatt definiert wird, ob...

Datenblatt unter 'External Interrupts' (bei mir S. 67,68):
MCUCSR.ISC2
GICR.INT2
GIFR.INTF2

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