Ich hab nochmal darüber nachgedacht, wie man etwas sparsamer mit den I/O-Ports umgehen könnte. Herausgekommen ist eine Lösung, die mit zwei Interrupt-Eingängen auskommt, und weitere 6 Ports die Aktivierung der einzelnen Scheiben übernehmen, und zwar sowohl der Taster als auch der LEDs, die bei der aktiven Scheibe ja leuchten sollen.

Zur Funktion: Die beiden Interrupt-Eingänge sind über die internen PullUp-Widerstände auf 1 gelegt und müssen folglich als "falling" konfiguriert werden. Die Taster jeder einzelnen Scheibe gehen dann auf einen I/O-Port. Liegt an diesem Port ein High, sind die Taster wirkungslos, weil sie den Interrupt-Eingang somit nicht auf Low ziehen können. Einer der 6 I/O-Ports ist also immer auf Low, und nur die daran angeschlossenen Taster können den Interrupt auslösen.

Als "Abfallprodukt" kann man mit diesem Low-Pegel dann über einen PNP-Transistor auch gleich die LEDs einschalten. Für 6 LEDs (so sah ja Deine Zeichnung aus) brauchst Du sowieso pro Scheibe einen Transistor, denn soviel Strom kann ein normaler Port nicht liefern.

Das hieße also, dass Du für die komplette Steuerung und Abfrage der Scheiben lediglich die beiden Interrupts + 6 I/O-Ports bräuchtest. Und somit käme der Mega8 wieder in Frage

Klicke auf die Grafik für eine größere Ansicht

Name:	IMG_0085.jpg
Hits:	9
Größe:	38,5 KB
ID:	24506