Forum: Mikrocontroller und Digitale Elektronik Eingabepuffer - 8 Taster


von Maxim (maxim) Benutzerseite


Lesenswert?

Ich muss 8 Taster zwischenpuffern. Leider hat der AVR keine 
bitadressierbaren Register.

Mir fallen zwei verschiedene Lösungsansätze ein:

Ich nehme einen Register, in welchem jedes Bit einen Taster 
repräsentiert. Dadurch steigt leider der Aufwand beim Auswerten und 
Puffern.

oder

Ich nehme für jeden Taster einen Register, was eine moralisch kaum 
vertretbare Platzverschwendung ist. ;) Die Auswertung und Pufferung ist 
aber einfacher und schneller.

Ich habe zwar keine Speicherprobleme, aber die zweite Möglichkeit ist 
halt irgendwie naja ...

Fällt euch noch was Anderes ein?

von Falk B. (falk)


Lesenswert?

@ Maxim W. (maxim)

>Ich muss 8 Taster zwischenpuffern. Leider hat der AVR keine
>bitadressierbaren Register.

Das geht wunderbar ohne.

>Ich nehme einen Register, in welchem jedes Bit einen Taster
>repräsentiert. Dadurch steigt leider der Aufwand beim Auswerten und
>Puffern.

Wieso?

>Ich nehme für jeden Taster einen Register, was eine moralisch kaum
>vertretbare Platzverschwendung ist. ;) Die Auswertung und Pufferung ist
>aber einfacher und schneller.

Wieviel Millionen mal pro Sekunde musst du denn die Taster auswerten, 
weil du soviel Wert auf Geschwindigkeit legst?

Nimm die erste Variante und gut ist.

MfG
Falk

von Peter D. (peda)


Lesenswert?

Maxim W. wrote:
> Ich muss 8 Taster zwischenpuffern. Leider hat der AVR keine
> bitadressierbaren Register.

wozu?

Alle 8 in einem Rutsch ist viel effektiver.


> Fällt euch noch was Anderes ein?

Naja, in der Regel will man vor dem Puffern die Taste erstmal entprellen 
und Flanke erkennen.
Vielleicht auch noch Repeatfunktion oder kurz/lang Erkennung.

Alles kein Problem:

Beitrag "Universelle Tastenabfrage"


Peter

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
Noch kein Account? Hier anmelden.