- Offizieller Beitrag
Ich muss noch als Nachtrag etwas einwerfen. Doch es gibt einen Zeitvorteil. Die Matrix ist langsamer. Beim durchgehen dieser müssen Pins umgeschaltet werden und das benötigt eine gewisse Zeit bevor man zuverlässig nach dem Verändern des Pins prüfen kann. Bedeutet also die Matrix ist tatsächlich langsamer
Das müsstest du mir bitte ganz genau erklären.
Ein Taktgeber schaltet bei 64 Kontakten von Taste zu Taste.
Bei der Matrix jeweils wiederholt von Taste 1 bis 8. Gleichzeitig bei jeweils Taste 1 auch von Sammelkontakt 1 bis 8.
Zähler 1 für die Tasten steht auf 1 und
Zähler 2 der Sammelkontakte steht auf 1
Zähler 1 zählt hoch bis 8
Dann wird er mit der negativen Flanke vom 8. Impuls auf 1 zurückgesetzt und Zähler 2 auf 2 gestellt
Auf dem nächsten Zählimpuls folgt die gleichzeitige Abfrage Taste 1 und Sammelkontakt 2 usw
Da sich die negative Flanke zum Zurücksetzen des Zählers 1 und Weiterschalten des Zählers 2 auf der halben Periode des Impulses befindet geht keine Zählzeit verloren. Also auch keine Abfragezeit.
Der Zähler zählt bei 64 Einzelkontakten von Impuls zu Impuls durch.
Und auch bei der Matrix bei 8 x 8 von Impuls zu Impuls durch.
Wenn es sich wie von dir beschrieben verhält würde in der Digitalverarbeitung jeder Zähler zwischen 9 und 10 (0) holpern.
Ich kann gerne mal die Impulsfolge mit den Schaltpunkten aufzeichnen
Durch das Umsteuern der Zähler über die negative Flanke zur halben Impulsperiode ist die Abfrage zum nächsten Impuls garantiert.
Ich hab das an meinem selbstgebauten Scanner mit dem Oszilloskop überprüft. Auch die Scanner von WIRA arbeiten mit diesem Zählbetrieb
Ausnahme: Die Taktfrequenz ist für die zu verarbeitende Logik zu schnell.
Das ist aber auszuschließen.
Wie gesagt, beim programmierten Arduino kann es sich anders verhalten. Da entstehen evtl unterschiedliche Programmierzeiten