Forum: Compiler & IDEs Externer Interrupt wie initialisieren?!


von Matze K. (phytomed)


Angehängte Dateien:

Lesenswert?

Moin,

ich möchte die externen Interrupts 0 und 1 verwenden,
um den Prozessor aufzuwecken. Leider funktionieren
alle meine Versuche nicht.

Ich verwende einen ATmega16 und verbinde die beiden
Pins (PD2 & PD3) über 10kOhm mit vcc. Der Schalter
liegt an der Masse an.

Die Sourcen liegen im Anhang.

Ich habe die auskommentierten Stellen auch anders probiert.

Vielen Dank
Matthias

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Davon abgesehen, dass du nicht schreibst, was denn genau nicht
funktioniert (und du damit erwartest, dass die Leser deines
Quelltextes sofort alles ,,trocken'' nachvollziehen können),
folgende
Anmerkungen:

. Don't use INTERRUPT unless you know what you're doing.  Für
externe
  Interrupts will man wohl nie INTERRUPT benutzen, für externe
  pegelgetriggerte Interrupts ist es gar komplett tödlich -- aber
  genau einen solchen brauchst du, um den ATmega16 aus dem Tiefschlaf
  zu erwecken (habe jetzt nicht nachgeguckt, was du genau für einen
  Interruptmodus eingeschaltet hast).

. Es ist natürlich OK, einen externen Interrupt zum Aufwecken des
  Prozessors zu nutzen, aber für die Abfrage eines Tasters muss man
  diesen danach entprellen.  Also in der ISR schaltet man eigentlich
  nur umgehend den Externinterrupt wieder aus und setzt ein Flag, dass
  die Taste gedrückt worden ist, danach wird sie über einen Timer etc.
  entprellt.

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.