Forum: Mikrocontroller und Digitale Elektronik PinChange Interrupt Flag ohne Interrupt enable?


von Klaus W. (Firma: privat) (texmex)


Lesenswert?

Hallo!

Ich würde in einem attiny461 gerne das Pinchange Interrupt Flag 
auswerten ohne wirklich einen Interrupt auszulösen. Also mit gelöschtem 
Interrupt Enable Flag in GIMSK.

Vermutlich gibt es dazu keine Möglichkeit? Alleine schon durch die 
Aufteilung in PCIE0 und PCIE1, welche aber nur einem Interruptflag 
zugeordnet sind, sieht es so aus dass das nicht gehen kann.

Oder?


Viele Grüße,
Klaus

von Öpf (Gast)


Lesenswert?

>Ich würde in einem attiny461 gerne das Pinchange Interrupt Flag
>auswerten ohne wirklich einen Interrupt auszulösen.
Was spricht dagegen den Interrupt zu verwenden?

von holger (Gast)


Lesenswert?

>Ich würde in einem attiny461 gerne das Pinchange Interrupt Flag
>auswerten ohne wirklich einen Interrupt auszulösen. Also mit gelöschtem
>Interrupt Enable Flag in GIMSK.

>Vermutlich gibt es dazu keine Möglichkeit?

Kann ich jetzt auch nicht sagen ob das geht.
Beim SPI Modul kann man SPIF auswerten ohne
den Interrupt zu aktivieren.

Einfach mal ausprobieren würde ich sagen.

von Uhu U. (uhu)


Lesenswert?

Ohne im Datenblatt nachgelesen zu haben: Interruptflags werden 
unabhängig vom Interrupt-Enable gesetzt. Lediglich der Aufruf der ISR 
unterbleibt, wenn ein interruptfähiger Eingang eine Interruptbedingung 
erkannt hat.

Du mußt eben das IF nach der Auswerung explizit rücksetzen.

von Klaus W. (Firma: privat) (texmex)


Lesenswert?

Öpf schrieb:
>>Ich würde in einem attiny461 gerne das Pinchange Interrupt Flag
>>auswerten ohne wirklich einen Interrupt auszulösen.
> Was spricht dagegen den Interrupt zu verwenden?

Der Prozessor wacht dann im Sleep Mode auf. Das soll er eigentlich 
nicht. Ich will nur nach dem Aufwachen (Timer) wissen, ob 
zwischenzeitlich ein PinChange stattgefunden hat.

von Öpf (Gast)


Lesenswert?

>Der Prozessor wacht dann im Sleep Mode auf. Das soll er eigentlich
>nicht. Ich will nur nach dem Aufwachen (Timer) wissen, ob
>zwischenzeitlich ein PinChange stattgefunden hat.
Aha. Danke.

von Vlad T. (vlad_tepesch)


Lesenswert?

Klaus W. schrieb:
> Öpf schrieb:
>>>Ich würde in einem attiny461 gerne das Pinchange Interrupt Flag
>>>auswerten ohne wirklich einen Interrupt auszulösen.
>> Was spricht dagegen den Interrupt zu verwenden?
>
> Der Prozessor wacht dann im Sleep Mode auf. Das soll er eigentlich
> nicht. Ich will nur nach dem Aufwachen (Timer) wissen, ob
> zwischenzeitlich ein PinChange stattgefunden hat.

wo ist das Problem? da wacht er ebend auf, du seetzt eine Variable, 
deaktiverst den PCI und legst ihn wieder schlafen.
das ist in wenigen nano-sekunden erledigt und kostet so gut wie keinen 
strom.

von Öpf (Gast)


Lesenswert?

>wo ist das Problem? da wacht er ebend auf, du seetzt eine Variable,
>deaktiverst den PCI und legst ihn wieder schlafen.
>das ist in wenigen nano-sekunden erledigt und kostet so gut wie keinen
>strom.

Das habe ich mich auch gefragt. Aber ich nehme an, das der uC sowieso 
aufwachen soll, auch wenn am Pin kein Pegelwechsel stattfindet bzw. das 
Klaus auch wissen muss, das innerhalb eines gewissen Zeitablaufs eben 
keiner stattgefunden hat.

von Klaus W. (Firma: privat) (texmex)


Lesenswert?

>> Der Prozessor wacht dann im Sleep Mode auf. Das soll er eigentlich
>> nicht. Ich will nur nach dem Aufwachen (Timer) wissen, ob
>> zwischenzeitlich ein PinChange stattgefunden hat.
>
> wo ist das Problem? da wacht er ebend auf, du seetzt eine Variable,
> deaktiverst den PCI und legst ihn wieder schlafen.
> das ist in wenigen nano-sekunden erledigt und kostet so gut wie keinen
> strom.

Stimmt, aber das bedeutet, dass ich dann unterscheiden müsste, ob er vom 
Timer oder vom Pinchange aufgewacht ist. Gleiches gilt für die A/D 
Wandler im noise-reduction mode. Ich müsste dann wirklich 
interrupthandler implementieren usw. Klar, alles kein Problem. Aber wäre 
schöner wenn es anders ginge.

Viele Grüße,
Klaus

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.