Forum: PC-Programmierung Folientastatur an mega 32 und lcd


von Yankee007 (Gast)


Lesenswert?

Hey Leute,

habe mal nen paar fragen:

Möchte über eine Tastatur die ich bei Con+++ gekauft habe (709930-99) 
gekauft habe gerne einen zweistelligen code in den µ schreiben. der code 
den ich eingebe soll gleichzeitig auf einem LCD ausgegeben werden und 
erst bei drücken einer bestimmten taste fest in einer variablen gehalten 
werden.

Hat einer eine Idee wie ich die ja nur kurzen Tastimpulse der Tastatur 
auffangen kann? Müssten ja beide jewals kurz gespeichert werden und 
anschließend in einer variablen zur weiterverarbeitung vestgehalten 
werden.

Vielen Dank für eure hilfe.
Sollte jemandem etwas unklar sein fragt werde so schnell wie möglich 
antworten.

von mr.chip (Gast)


Lesenswert?

Interrupt? Regelmässiges (im Millisekundenbereich) abfragen der Ports?

von Markus M. (yankee007)


Lesenswert?

das ganze in bascom geschrieben

interrupts brauche ich denk ich nicht, befinde mich in einer 
endlosschleife die nur dafür da ist die eingabe mitzubekommen und wenn 
eine betimmte taste gedrückt wird in ein bestimmtes den zahlen 
zugeornetes unterprogramm zu springen. und da soll er dann über einen 
normalen counter wieder raus in die endlosschleife

von Markus M. (yankee007)


Lesenswert?

kann mir keiner helfen??? würde gerne weiter kommen doch mir fällt 
absolut nichts ein!

von Stone (Gast)


Lesenswert?

Also ich habs so gemacht.
-Alle Eingänge(der Folientastatur) auf High
-Alle Ausgänge hängt über Diode am Interrupt
-Wird ne Taste gedrückt wird der Interrupt ausgelöst
-Dann wird jede Zeile der Tastatur geprüft von welcher Taste der Int 
aüsgelöst wurde.
-Die Taste wird in einer Variable(S-Ram) gespeichter, beim Tastendruck 
könnest dus dann ins EE-Prom schreiben.

MfG Matthias

von Markus M. (yankee007)


Lesenswert?

kannst du mir das ganze mal als quellcode zeigen, verstehe so nicht 
genau wie du das gemacht hast. danke

von Stone (Gast)


Lesenswert?

Also das ganze Abfrageprogramm ist zu umfangreich, aber kurz erklären 
müsste auch gehen.

B1-4 sind die Zeilen der Tastatur(Eingänge)
A1-3 sind die Ausgänge der Tastatur
Y wird vom int gesetzt um den Programmablauf nicht in der intsub 
auszuführen
C bestimmt in welche Variable gespeichert wird
Code1-Codex Variablen in der der Tastenwert gespeichter wird


Dann B1-4 auf high


int:
Set Y
return

If Y=1 then

b1-4 auf low

dann b1 auf high
   If A1 = 1 Then X = 1
   If A2 = 1 Then X = 2
   If A3 = 1 Then X = 3
b1 auf low

b2 auf high
   If A1 = 1 Then X = 4
   If A2 = 1 Then X = 5
   If A3 = 1 Then X = 6
b2 auf low

.
.
.
Y=0(um auf den nächsten int zu waren)
b1-4 wieder auf high
incr c

end if

Subvergleichen:
c=1 then code1=X
C=2 then code2=X
.
.
.

und so weiter

So müsste es gehen
Wenn du noch Fragen hast sag bescheid.

MfG Matthias

von Holger K. (krulli) Benutzerseite


Lesenswert?

Zur Abfrage einer 4x4 Tastenmatrix gibt es eine Routine namens GETKBD
Nähres in der Bascomhilfe..

von Markus M. (yankee007)


Lesenswert?

mhhh gut ich denke dann werde ich aus gründen der einfachheit her eine 
neue tastatur kaufen und das mit einer 4x4 matrix machen. danke trotzdem 
für eure vorschläge. wenn ich noch mal probleme haben sollte werde ich 
mich wieder an euch wenden.

von Markus M. (yankee007)


Lesenswert?

So nun da ich diesen getkbd befehl verwende, habe ich erneut ein paar 
fragen:
1. Wie kann ich nun den ersten Tastendruck einer Variablen zuweisen und 
den zweiten einer anderen?
2. Wie kann ich diese Variablen dann beim drpcken lassen einer 
Bestimmten Taste in eine dritte schreiben, welche dann am port C aniegen 
sollen?
3. Wieso funktioniert die in Bascom Simulator eingebettete Tastatur 
nicht?


Danke für eure hilfe!!!
Markus

von Markus M. (yankee007)


Lesenswert?

mhhh kann mir keiner darauf antworten??? wäre echt nett wenn mir jemand 
bescheid geben könnte bin nämlich noch nicht so gut darin, will aber 
unbedingt das das am ende funktioniert wie ich es mir vorstelle.

von Markus M. (yankee007)


Lesenswert?

naja danke nocham an alle die mir geholfen haben. habe es jetzt selbst 
hin bekommen.

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.