Zahleneingabe über Matrixtastatur

Gast #24889
Lesenswert?

Ich habe ien Problem mit der Eingabe von Zahlen mittels Matrixtastatur.

Und zwar die Tastatur (0-9 . + - ) liefert die Werte.
Ich soll muss sie sofort am LCD visualisieren aber auch gleichzeitig 
zwischenspeichern. Denn sobald Enter gedrückt wurde sollen ja die 
gedrückten Zahlen mit oder ohne Vorzeichen in einer Variable stehen.

Kann mir vielleicht einer helfen!

0-9 habe ich schon geschaft aber + - . machen mir sorgen

DANKE für die Antwort
Werner
Gast #24890
Lesenswert?

Sollen + und - das Vorzeichen wechseln oder was?
Was benutzt Du C, ASM, Basic?


Wenn die Ziffern eingegeben werden, kannst Du Sie auf gleich in eine 
Zahl umwandeln und mit Vorzeichen ausgeben. Wird ein + eingegeben muß zu 
der Zahl nur wenn sie negativ ist INTMIN oder LONGMIN hinzuaddiert 
werden.
Bei einem - addierst nur wenn sie positiv ist INTMIN oder INTLONG hinzu.

Nach jeder Eingabe mußt Du natürlich die ganze Zahl immer wieder 
ausgeben.

Du kannst natürlich auch nur die Ziffernfolge speichern und den ersten 
Platz der Folge für das Vorzeichen reservieren und bei + oder - dort 
dann eintragen, aber solche Lösungen sind programmiertechnisch etwas 
unschön. Aber was Du für Dich
machst ist ja Dein Ding.


Reiner
Gast #24892
Lesenswert?

Nun ich weiß ja nicht wie Deine Matrix die Tastenwerte erzeugt.
Wenn Du eine Lösung für Dein Problem suchst, solltest Du Deinen Source 
schon zeigen. So können die Leute aus dem Forum am besten etwas in Deine 
Struktur einpassen.

Reiner
Gast #24893
Lesenswert?

key ist die Taste die auftritt.


code char tast[13]={43,45,46,48,49,50,51,52,53,54,55,56,57,};
code char tastzuort[13] = "+-.0123456789";

for (z=0;z<13;z++)
    {if (key==tast[z])
      {Taste=tastzuort[z];
      sprintf(line,"%c",Taste);
      print_string(line);
      }
     }
Bei diesem Code wird die gedrückte Zahl gleich aufs LCD geschrieben.

Jetzt habe ich noch das Problem das mehrere Zeichen eingegeben werden 
und in einer Varible abgelegt werden sollen.

z.B. Es soll 1234 eingegeben werden und dürch drücken einer Entertaste 
dies in eine Varible gespeichrt werden.

Werner

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren