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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren