Und wenn er die Schalter wieder seperat macht? Also dann insgesamt 4 ODER-Gatter.
2 für die Taster, jeweils steigende und fallende Flanke
2 für die Schalter, jeweils steigende und fallende Flanke
Druckbare Version
Und wenn er die Schalter wieder seperat macht? Also dann insgesamt 4 ODER-Gatter.
2 für die Taster, jeweils steigende und fallende Flanke
2 für die Schalter, jeweils steigende und fallende Flanke
Hallo,
hast du noch auf dem I²C-Bus Platz für drei PCF 8574 (Portexpander)?
Die haben einen Int-Ausgang (OpenCollektor), der meldet eine Zustandsänderung an seinen Eingängen (Rückstellung durch Auslesen oder Wegnahme des Signals).
MfG Lutz
Stimmt. Das geht ja auch. Und da kann er dann, wenn er es nicht mit einem INT machen will auch mit den einzelnen Ports machen. jeder PCF gibt 8 Ports und 3 Stück sind 24 Ports. Und du verbrauchst quasi keinen zusätzlichen Port am Controller.
Wie wärs damit:
Du nimmst einen 1 aus 20 Encoder ( kann man auch aus 3 Stück 1 aus 8 Encodern machen ).
Dieser Encoder braucht 5 Adressleitungen.
Die Taster werden an den Ausgängen dieser Encoder angeschlossen und ein Eingang des Controllers über Pullup Widerstand mit den anderen Anschlüssen aller Taster verbunden.
Ist ein Taster gedrückt, wird bei entsprechenden Adresse des Encoders der Eingang auf LOW gezogen.
Man braucht bei dieser Methode also 6 Portpins.
Das System ist natürlich wieder ein Polling.
Alternativ könnte man die Adressierung der Matrix über einen Binärzähler realisieren.
Dann könnte man wieder die Methode mit den 2 Interrupts am Controller verwenden.
Allerdings muß man dann dafür sorgen, das zumindest einmal pro Durchlauf ein Interrupt stattfindet - Zum Beispiel wenn kein Taster gedrückt ist, oder alle gedrückt sind.
Die Adressleitungen dieses Zählers müssten aber trotzdem mit dem 1284 verbunden werden, damit man weiß, welche Taste gerade addressiert wurde.
Ein externer Controller, der über eine Matrix die Tasten überwacht und bei einer Änderung die Daten per SPI an den Steuercontroller übergibt dürfte aber vom Hardwareaufwand und der Portpin Anzahl die günstigere Methode sein.
Der Tastaturcontroller wäre dann der SPI Master, weil dann die Tastenübergaberoutine am 1284 wieder im Interrupt laufen kann.
Bevor ich 3 PCFs, ODER Gatter, Encoder oder sonstwas nehme, würde ich dann doch lieber auf einen weiteren MC zurückgreifen...
Das mit den PCFs hört sich sinnvoll an.
Das mit den UND hätte schon funktioniert aber auch nur bedingt. Da hätte nochmal genauer darüber nachdenken sollen.
Ich werde also jetzt ein paar PCF 8574 auf die Bestellliste setzen.
Ich denke das, das Problem damit aus der Welt geschafft ist.