Forum: Mikrocontroller und Digitale Elektronik EasyAvr5_Tastatur Problem


von Martin W. (martini)


Lesenswert?

Hallo,

und zwar folgendes Problem, habe das EasyAvr Board 5, worauf sich 32 
Taster befinden, und jeder Taster mit einem Port verbunden ist, also 
keine Matrix.

Meine Frage wäre jetzt, wie ich es am geschicktesten machen könnte, zum 
einen überprüfen ob eine Taste gedrückt ist(per Interrupt?), wobei das 
sicher nicht das Problem sein wird vorerst, aber was nun wenn die Ports 
grad für was anderes verwendet werden? Wie kann ich hier eine 
Unterscheidung machen zwischen nen Tastendruck und dem Anderen? Ist dies 
überhaupt möglich?

aja Atmega16 und C wird verwendet ^^

von Peter D. (peda)


Lesenswert?

Martin Wi wrote:
> und zwar folgendes Problem, habe das EasyAvr Board 5, worauf sich 32
> Taster befinden, und jeder Taster mit einem Port verbunden ist, also
> keine Matrix.
...
> aja Atmega16 und C wird verwendet ^^

Der ATmega16 hat 32 IOs, wenn wirklich an jedem ne Taste hängt, dann 
hast Du 32 Eingänge und 0 Ausgänge.
So eine Schaltung ist einfach hirnrissig, da völlig funktionslos.

Mach ne 4*8 Matrix, dann kann der AVR mit den übrigen 20 Pins auch noch 
was tun.


> Wie kann ich hier eine
> Unterscheidung machen zwischen nen Tastendruck und dem Anderen? Ist dies
> überhaupt möglich?

Nein.


Peter

von Jörg B. (manos)


Lesenswert?

Auf dem EasyAVR hängt jeder Port an einer Taste... Die Kunst ist halt, 
keine zu drücken die als Ausgang definiert ist - alternativ, das gesamte 
Tastenfeld abschalten (Potentialstecker ziehen).

Das Tastenfeld sowie die Leds sind als Schnell- und Funktionstest 
wunderbar geeignet. Wenn man eine Matrix benötigt, muss man entweder 
eine aus dem Zubehör bestellen oder einfach selber bauen.

http://www.mikroe.com/en/tools/easyavr5/

http://www.mikroe.com/en/tools/keypad/

von Martin W. (martini)


Lesenswert?

Hey

Erstmals danke für die Hilfe.

Ja wir machen jetzt ne 4x3 Matrix und schließen diese an PortD an.

@Jörg B. danke für die Links, da gibts ja noch paar Sachen an Zubehör 
für das Board.

Da du anscheinend das Board kennst, hätte ich noch ne Frage an dich.
Das normale LCD lauft ja schon mithilfe der LCD-Routine von hier, weißt 
du aber obs irgendwo noch so Beispielprogramme für das Board in C gibt? 
Die mitgelieferten sind ja leider nur in BASC und so.

Vor allem würd mich aber auch ne Grafik-LCD-Routine interessieren.

lg Martin

von Jörg B. (manos)


Lesenswert?

Kann ich derzeit leider nicht mit dienen...
Einfach mal schauen, was da für ein Kontroller drauf ist und an welchen 
Portpins der angeschlossen ist... sollte eigentlich dann kein großes 
Problem sein ein C-Programm darauf anzupassen.

von Martin W. (martini)


Lesenswert?

hey

controller ist ein S6B0108.

hm jo , hab da ne routine gefunden, mal schaun ob ichs hinkrieg..

aber danke für die hilfe.

lg

von Martin W. (martini)


Lesenswert?

noch was, da der eine s6b0108 angeblich kompatible mit dem KS0108B ist, 
möcht ich wie gesagt die routine von ape verwenden. wobei ich noch net 
ganz den durchblick hab in bezug auf die anzahl der controller, zum 
einen auf meinem display, zum anderen, auf wieviel controller die 
vorhandene lcd routine abgestimmt ist.

wie kann man das rausfinden? bei meinem Display sind eben die Stellen 
mit U1, U2 und U3 gekennzeichnet.

danke im voraus
(und ja wenns noch länger dauert mach ich nen neuen beitrag ^^)

lg

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.