Mehrere externe Interrupts C für ATMega16?

OP #562919
Lesenswert?
• ▲
▼
Hallo Zusammen,

da ich nach stundenlanger Suche auch hier auf der Seite nichts gefunden 
habe, habe ich eine Frage an die Profis. Ich habe einen ATMega16, den 
ich per C Code programmiere. Ich möchte gerne über mehrere Tasten 
Interrupts auslösen und habe bisher keine für mich verständliche 
Erklärung gefunden, wie ich das anstellen kann. Ich möchte z.B. über 
eine Taste eine bestimmte Funktion ausführen und über eine andere Taste 
eine andere Funktion aufrufen.
Kann mir hierbei jemand von Euch helfen, da mir nach der Suche einfach 
nur noch der Kopf schwirrt.... Vielleicht sehe ich den Wald ja vor 
lauter Bäumen nicht.


Gruß Roland
OP #562981
Lesenswert?
• ▲
▼
Jörg Wunsch wrote:
> Aber nur bis zu dem Zeitpunkt, da er merkt, dass man mechanische
> Tasten sowieso entprellen muss und daher einen Timerinterrupt
> stattdessen benötigt...

Hallo Jörg,

ich dachte die Entprellung der Taste erfolgt dann in der Funktion, die 
die Taste aufruft. Ok, eswar spät gestern Abend und den meinen 
Logikfehler habe ich inzwischer eingesehen.
Kannst Du mir vielleicht zu Deinem Lösungsvorschlag (mehrere 
Timerinterrupts) ein wenig weiterhelfen? Da ich eher C-lastig bin, ist 
die Programmierung des ATMEGA16 manchmal ein wenig verwirrend für 
mich....

Besten Dank & Gruß
Roland
Moderator Persönliche Seite #562985
Lesenswert?
• ▲
▼
Es sind nicht mehrere Timerinterrupts, sondern ein ,,tick''-Timer,
der z. B. alle 10 ms aufgerufen wird.  Den braucht man in einer
hinreichend komplexen Applikation ohnehin, um alle von der Zeit
abhängenden ,,Standardaufgaben'' auszuführen, und der pollt dann
gleich die Tasten mit.  Wenn eine Taste 2- oder 3mal als gedrückt
erkannt worden ist, wird es dann dem Hauptprogramm gemeldet.

Implementierungen dafür dürftest du einige in den einschlägigen
Codesammlungen finden.

Externer Interrupt (oder pin change interrupt, aber den hat der
ATmega16 nicht) hat bei mechanischen Tasten nur Sinn, um damit dem
Prozessor aus dem sleep zu ziehen.  Danach schaltet man den aber
auch wieder ab.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.