Forum: Mikrocontroller und Digitale Elektronik Max. 2 Interruptgesteuerte Taste am Atmega8?


von Fritz (Gast)


Lesenswert?

Hi,

frage mich grade ob man nur maximal zwei (INT0/INT1) Interruptgesteuerte 
Taster an den Atmega8 anschließen kann?

Sagen wir ich habe sechs Taster. Mit If() den aktuellen Zustand abfragen 
kann ja keine Lösung sein.

von Norbert M. (Gast)


Lesenswert?

Was spricht denn dagegen, nur einen Interrupt-fähigen Eingang für alle 
Taster gemeinsam zu verwenden, und dann in der Interruptroutine selbst 
zu überprüfen, welcher Taster die Unterbrechung ausgelöst hat? Zeit 
dafür ist doch bei menschlich betätigten Tastern wohl mehr als genug.

LG, N0R

von Justus S. (jussa)


Lesenswert?

Fritz schrieb:
> Sagen wir ich habe sechs Taster. Mit If() den aktuellen Zustand abfragen
> kann ja keine Lösung sein.

prinzipiell doch...

Fritz schrieb:
> frage mich grade ob man nur maximal zwei (INT0/INT1) Interruptgesteuerte
> Taster an den Atmega8 anschließen kann?

sowas ist in den meisten Fällen eh eine schlechte Idee

von Kurt H. (Firma: KHTronik) (kurtharders)


Lesenswert?

Hallo Fritz,
zum Entprellen brauchst Du doch meist sowieso einen Timer. Also alle 1ms 
abfragen... Dafür muss es kein Interruptanschluss sein.
Grüße, Kurt

von Treinisch (Gast)


Lesenswert?

Kannst auch einen MAX6818 nehmen ESD bis 15 kV, spannungsfest bis 25 V, 
latsch, ein Interruptausgang  und Entprellung.

Vlg
Timm

von Peter D. (peda)


Lesenswert?

Fritz schrieb:
> Sagen wir ich habe sechs Taster. Mit If() den aktuellen Zustand abfragen
> kann ja keine Lösung sein.

Doch, genau das ist die Lösung.
Allerdings fragt das if nicht die Tasten direkt ab, sondern die 
Ereignisflags der Entprellroutine, die im Timerinterrupt (5..50ms) 
ausgeführt wird.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

AUA!
Taster gehören sowas von nicht an Interrupts.

Nimm die diversen Entprellungsroutinen aus dem Forum hier für sowas.

von Fritz (Gast)


Lesenswert?

Danke Kurt!
Hatte die Entprellung garnicht in Betracht gezogen.

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.