Hallo,
es geht mit I2c weiter, als neues Sub-Projekt hab ich mich mit dem HT16K33 auseinander setzen müssen. Ganz klar gibts den Max7219 & andere LED Controller, und mit dem PCF8574 auch Eingänge... ich aber brauche jede menge Tastereingänge und am besten noch als I2C.
Der HT16K33 kann 16 stück 7 Segmentanzeigen steuern und "ganz nebenbei" auch 39 Taster einlesen. Noch besser macht sich der HT16k33 bestimmt mit 8 stück 16 Segment Anzeigen, hab ich nicht da und man muss den code dann anpassen. Kommt vielleicht noch..
Mit aktiviertem Interruptausgang kann er nur 36 Tasten und man muss auf auf den Dezimalpunkt verzichten. Entprellen macht der chip zwar schon intern, eine Int routine am AVR macht aber wenig sinn da der interrupt nachdem der Speicher gelesen wurde beim nächsten Scan wieder kommt. Das mit knapp 50Hz. Kaum ein normaler Tastendruck ist nur 20ms kurz, daher ists sinnvoller den interrupt manuell abzufragen oder gleich den Tastenspeicher zu pollen. Tastendrücke werden gesammelt bis der Speicher ausgelesen wird wird also zwischen zwei Auslesezyklen Bit 0 und Bit1 gesetzt kommt als Ergebnis beim auslesen 3 raus.
Von Adafruit gibt es ein Board mit 4 Stück 7 Segmentern, das passt nicht ganz zum code da dort die Doppelpunkte eine ganzes 7 segment modul wegfressen, d.h. eigentlich ist auf dem Adafruit teil ein 5 stelliges 7 segment Display verbaut.
Tobias
es geht mit I2c weiter, als neues Sub-Projekt hab ich mich mit dem HT16K33 auseinander setzen müssen. Ganz klar gibts den Max7219 & andere LED Controller, und mit dem PCF8574 auch Eingänge... ich aber brauche jede menge Tastereingänge und am besten noch als I2C.
Der HT16K33 kann 16 stück 7 Segmentanzeigen steuern und "ganz nebenbei" auch 39 Taster einlesen. Noch besser macht sich der HT16k33 bestimmt mit 8 stück 16 Segment Anzeigen, hab ich nicht da und man muss den code dann anpassen. Kommt vielleicht noch..
Mit aktiviertem Interruptausgang kann er nur 36 Tasten und man muss auf auf den Dezimalpunkt verzichten. Entprellen macht der chip zwar schon intern, eine Int routine am AVR macht aber wenig sinn da der interrupt nachdem der Speicher gelesen wurde beim nächsten Scan wieder kommt. Das mit knapp 50Hz. Kaum ein normaler Tastendruck ist nur 20ms kurz, daher ists sinnvoller den interrupt manuell abzufragen oder gleich den Tastenspeicher zu pollen. Tastendrücke werden gesammelt bis der Speicher ausgelesen wird wird also zwischen zwei Auslesezyklen Bit 0 und Bit1 gesetzt kommt als Ergebnis beim auslesen 3 raus.
Von Adafruit gibt es ein Board mit 4 Stück 7 Segmentern, das passt nicht ganz zum code da dort die Doppelpunkte eine ganzes 7 segment modul wegfressen, d.h. eigentlich ist auf dem Adafruit teil ein 5 stelliges 7 segment Display verbaut.
Tobias