www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zahleneingabe über Matrixtastatur


Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit C

Ein beispiel hast du nicht oder?

Werner

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Werner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber wenn ich Dich richtig verstanden hatte sollte doch +- eine 
besondere Bedeutung haben? Wie war das genau?

Reiner

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.