Hallo, möglicherweise ist das Problem so trivial, dass ich es momentan einfach nicht sehe. Ich frage mich, ob es möglich ist mehrere (etwa 16) Taster per SPI auszulesen? Um nicht ständig pollen zu müssen, dachte ich, man könnte die parallelen Eingänge an Schieberegistern mit Eingangs-FlipFlops verwenden. Solche ICs gibt es: z.B. 74HCT597 ober 74HC589 Allerdings sind diese ICs schon relativ alt, man kriegt sie kaum noch (meine ich zu mindest). Zudem ist es nur möglich, so wie ich das Datenblatt verstehe den Eingangszustand in einem Moment in die Kippstufen zu speichern. Gibt es andere? Besteht die Möglichkeit die Kippstufen dauerhaft (also bis zum nächsten Reset) zu durch ein kurzes Tasten zu setzen? Auf diese Weise würde man sich das Entprellen sparen, weil ein ständiges ein und aus letzenendes nur in einem high resultieren würde. Ich bin mir einfach nicht sicher, ob ich die Datenblätter richtig verstehe. Nochmal die Kurzfassung, damit auch wirklich klar ist, was ich meine: 1. Ich drücke irgendwann kurz (~150 µs) auf einen Taster 2. Dieses Signal kippt eine Kipptstufe auf High um, die sonst low zeigt 3. Irgendwann ganz viel später, vielleicht 10x pro Sekunde wird das Shiftregister, an welchem die FlipFlop ausgänge liegen per SPI ausgelesen und die FlipFlops resettet. Da muß doch irgendwo ein Haken sein, sonst würden dass doch all so machen... Besten Dank im Vorraus Schorsch
>1. Ich drücke irgendwann kurz (~150 µs) auf einen Taster
Das schaffst du im Leben nicht.
Man kann doch mit Parallel->Seriell Schieberegistern (gibt ja jene mit gepufferten Eingängen und jene ohne) solche Dinge realisieren. 74xx165 oder x597. Schau mal hier: http://www.mikrocontroller.net/articles/Porterweiterung_mit_SPI#Eing.C3.A4nge
Ok 150µs ist etwas kurz, lass es 200 oder 300 µs sein, mehr glaube ich ist es wirklich nicht.... Bei den genannten Schieberegistern u.a. xx165 müssen so wie ich das verstehe die Eingangslatche immer getriggert werden, das heißt doch, das man nur den Status der zum Triggerzeitpunkt gelegt wird darstellen kann - oder verstehe ich das falsch? Ich möchte erst auf den einen Taster drücker, dann vielleicht noch auf einen zweiten. Beide tasten-anschläge sollen immer in einem high im Eingangslatch resultieren - unabhängig von einem Trigger Oder stehe ich total auf dem Schlauch? Schorsch
>Beide tasten-anschläge sollen immer in einem high im >Eingangslatch resultieren Wozu? Es reicht doch, wenn du beide Tasten in der SW hast. Also baue eine klassische Tastenmatrix auf und lese das per SW ein.
Schorsch schrieb: > Ok 150µs ist etwas kurz, lass es 200 oder 300 µs sein, mehr glaube ich > ist es wirklich nicht.... Immer noch zu niedrig gepokert!
Du drückst die Taste mit der Hand/dem Finger? Ist's eine schliessende oder nur "feuernde" Taste? Mikrosekunden? Das will ich sehen! ;D Vermutlich bist du mit einem 74xx165 PISO bestens bedient. Der MC kann die "im Schlaf" mehrere 100x pro Sekunde abfragen um festzustellen, ob Tasten gedrückt sind. Entprellen in der SW ist auch keine Hexerei. :)
Einigen wir uns mal auf einige Millisekunden für einen sehr schnellen Tastenanschlag, so knapp zweistellig mindestens. Die Tasten alle 4 ms abfragen und dann warten ob die für mindestens 4 Abfragen konstant bleiben reicht völlig aus um auch ganz extrem schnelle Tastenanschläge sicher zu erkennen. Der Haken bei Deiner Lösung ist der große Hardwareaufwand, Du brauchst zwei Chips, mit einer 4x4 Matrix braucht man nur 8 Portpins.
Schorsch schrieb: > Ok 150µs ist etwas kurz, lass es 200 oder 300 µs sein, mehr glaube ich > ist es wirklich nicht.... Miß es dochmal nach, Du wirst staunen: Ein Mensch braucht typisch 300.000µs = 300ms. Im Alter wird es noch mehr. Ein Polling im Timerinterrupt alle 10..50ms ist dicke ausreichend und kostet kaum CPU-Last. Peter
Gut trainierte Gamer kommen unter 100 ms und klassisch ausgebildete Schreibmaschinenkräfte kriegen so was auch hin. Lachkrämpfe erzeugen bei mir aber Leute die ernsthaft erzählen sie würden den Unterschied zwischen einer USB Low Speed Maus und einer Full Speed Maus erkennen.
Guido Körber schrieb: > Gut trainierte Gamer kommen unter 100 ms und klassisch ausgebildete > Schreibmaschinenkräfte kriegen so was auch hin. Man muß das mit der Entprellung ja nicht übertreiben, wie bei manchem Fahrstuhl, wo man schon mal aus Versehen gegen die Tasten stoßen darf, ohne dass etwas passiert und man beim Drücken innerlich erstmal "EinSchimpanse" zählen muß, damit der was mitkriegt.
Guido Körber schrieb: > Gut trainierte Gamer kommen unter 100 ms und klassisch ausgebildete > Schreibmaschinenkräfte kriegen so was auch hin. Wer auf der Schreibmaschine 4000 Anschläge schreibt, ist schon ganz zufrieden. Das wären rund 150 ms pro Tastendruck. Mit "alle 4..10ms mal nachgeguckt" kriegt man das prima mit ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.