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
>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?
>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.
Ö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.
>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.
>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.
>> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.