PinChange Interrupt Flag ohne Interrupt enable?

OP (Firma: privat) #1508040
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
Gast
>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?
Gast
>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.
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.
OP (Firma: privat)
Ö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.
Gast
>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.
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.
Gast
>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.
OP (Firma: privat)
>> 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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.