Forum: Mikrocontroller und Digitale Elektronik AVR Externer Interrupt und Power-Down


von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

Eine komplizierte Frage aus reinem Interesse:

Beim Atmel AVR funktioniert die Flankenerkennung bei externen 
Interrupten nicht, wenn der Controller in den Schlafmodus Power-Down 
geht. Allerdings gibt es seit einer Weile den Pin-Change-Interrupt 
(PCI), bei der der Controller nach jeglichem Wackeln an den Eingängen 
selbst noch aus Power-Down aufwacht. Nun habe ich die Problemstellung, 
das ich den Schlafmodus Power-Down wegen Batteriebetrieb nutzen möchte 
aber die Software-mäßige Flankenerkennung in der PCI-ISR aus 
zeitkritischen Gründen eher vermeiden möchte.

Daher meine Frage, ob der externe Interrupt als fallende Flanke auslöst, 
wenn vor dem Schlafengehen der Eingang auf Highpegel lag und nach dem 
aufwachen selbiger sich auf Lowpegel befindet?

Soweit sei verraten das der Interrupt ausgelöst wird, jedoch bin ich mir 
nicht sicher, ob es eventuell durch das Schalterprellen geschieht und 
dann je nach Fertigungsstreuung mal geht und mal nicht. (Obwohl das auch 
nicht soviel macht, denn dann muss man halt den Drehimpulsgeber zwei 
ticks bewegen)

Bin mal gespannt, ob da jemand eine Antwort darauf kennt.

von Hc Z. (mizch)


Lesenswert?

> Beim Atmel AVR funktioniert die Flankenerkennung bei externen
> Interrupten nicht, wenn der Controller in den Schlafmodus Power-Down
> geht.

Das stimmt so allgemein (z.B. für den 644) nicht.  Um welchen Typ geht 
es?

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

Um die ATmega48/88/168 Reihe

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

Im Datenplatt steht das aber anderst, nämlich mit Fußnote und dem 
Hinweis auf Level-Auslösung also keine Flankenerkennung.

von Falk B. (falk)


Lesenswert?

Siehe Sleep Mode

von M. Н. (Gast)


Lesenswert?

Ja der kann bloß auf low oder high level reagieren....

aber achtung: konfigurierst du den interrupt auf low und schliesst einen 
schalter an der den pin auf low zieht und der interrupt sehr schnelll 
zuende ist, dann löst er noch mal aus du solltest also am ende warten 
bis der pin wieder high ist und dann den interrupt "beenden"

von Peter D. (peda)


Lesenswert?

Ernestus Pastell schrieb:
> Nun habe ich die Problemstellung,
> das ich den Schlafmodus Power-Down wegen Batteriebetrieb nutzen möchte
> aber die Software-mäßige Flankenerkennung in der PCI-ISR aus
> zeitkritischen Gründen eher vermeiden möchte.

Hä ???

Aus dem Power-Down braucht der AVR je nach Taktquelle eh ne ganze Weile, 
um den CPU-Takt zu stabilisieren.
Da fallen die popeligen 2/3 Zyklen, um nen Pin zu testen (SBIS+RJMP) 
überhaupt nicht auf.


Peter

von Ernestus P. (malzeit) Benutzerseite


Lesenswert?

> Hä ???
>
> Aus dem Power-Down braucht der AVR je nach Taktquelle eh ne ganze Weile,
> um den CPU-Takt zu stabilisieren.
> Da fallen die popeligen 2/3 Zyklen, um nen Pin zu testen (SBIS+RJMP)
> überhaupt nicht auf.
>
>
> Peter

Jetzt ist mir nicht ganz klar worauf du hinaus willst. Das zeitkritisch 
bezieht sich auf die Abarbeitung des Interrupt in Normalbetrieb.

Ein Drehimpulsgeber kann auf Low hängen, denn dann funktioniert die 
Sache mit dem Level-Interrupt mit Power-Down nicht mehr und die Batterie 
ist nach einigen Wochen leer.

von spess53 (Gast)


Lesenswert?

Hi

>Jetzt ist mir nicht ganz klar worauf du hinaus willst.

Er meint den PIN-Change-Interrupt.

>Das zeitkritisch bezieht sich auf die Abarbeitung des Interrupt in 
>Normalbetrieb.

Drehgeber und Interrupt?

MfG Spess

von Peter D. (peda)


Lesenswert?

Ernestus Pastell schrieb:
> Jetzt ist mir nicht ganz klar worauf du hinaus willst. Das zeitkritisch
> bezieht sich auf die Abarbeitung des Interrupt in Normalbetrieb.

Auch für nen normalen Interrupt sind 2/3 Zyklen nur Pinats. Schon ein 
leerer Interrupt kostet 10 Zyklen, mit Prolog,Epilog 30 Zyklen 
(AVR-GCC).

Außerdem kann man beide Aufgaben trennen:
Pinchange zum Aufwachen, externer Interrupt im Betrieb.


Peter

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.