Forum: Mikrocontroller und Digitale Elektronik Zahleneingabe mit einem Touchdisplay


von Marcel K. (viewer)


Lesenswert?

Hallo Forumgemeinde,

ich möchte in meinem Touchdisplay-Projekt zusätzlich eine Schaltuhr mit 
integrieren. (Eingabe der Start- und Stopp- Zeit)  Jetzt weiß ich 
allerdings nicht so genau wie ich das realisieren soll. Mein Problem 
liegt in der Speicherung und Anzeige der einzugebenden Werte.
Ich möchte z.B. für 12:26 Uhr die 1 drücken, dann erscheint die 1, dann 
die 2. Es erscheint die 2 und dann folg der Doppelpunkt. Usw. Speichere 
ich das am besten in einem Array ab?? Gebe ich dann gleich das Array 
wieder aus. Für die Ausgabe des Array brauche ich doch dann einen 
Zeiger, oder?? (oh je, da war ja was mit dem * und dem &… muss ich mal 
wieder auffrischen!!!!!)
Ich habe allerdings die Funkuhr meines Displays in einem String stehen. 
Das heißt ich hätte mit „String-Vergeleich“ eine einfache Lösung für das 
EIN/AUS schalten.

Meine Frage ist ob jemand so etwas schon mal gemacht hat?? Hätte da 
jemand einen C-Code-Beispiel?? Ich wäre über jede Idee dankbar…

Danke für eure Mühe…

Grüße Marcel (",)

von Karl H. (kbuchegg)


Lesenswert?

Speichere Zeiten nicht als String sondern als Zahlenwerte.
Spätestens dann, wenn du Vergleiche oder Reihungen damit
machen musst, rächt sich alles andere durch erhöhten Aufwand.

Du hast im wesentlichen 2 Möglichkeiten. Entweder du speicherst
alles in Form von Stunden und Minuten oder gleich als Minuten.
Ist ja nicht weiter schwer das umzurechnen:

* Gegeben Stunden und Minuten. Gesucht: Minuten ab Mitternacht

  TotalMin = 60 * Stunden + Minuten

* Gegeben Stunden seit Mitternach. Gesucht: Stunden und Minuten

  Stunden = TotalMin / 60
  Minuten = TotalMin % 60

> Ich möchte z.B. für 12:26 Uhr die 1 drücken, dann erscheint die 1,
> dann die 2. Es erscheint die 2

Ja. OK. Sollte ja kein Problem sein.

Intern rechnest du:  1 * 10 + 2 und kriegst so die 12 die du
als Stunden speicherst oder aufhebst um daraus Minuten ab Mitternacht
zu berechnen.

Selbiges dann mit den Minuten: Erste Eingabe * 10 + Zweite Eingabe

> Für die Ausgabe des Array brauche ich doch dann einen
> Zeiger, oder??

Quatsch mit Sosse. Um mit einem Array zu arbeiten brauchst du
Array Inidzierung, also den Zugriff mit []. Wenn du ein Array
an eine Funktion übergibst, wird sowieso immer ein Pointer
auf den Beginn des Arrays übergeben. Innerhalb einer Funktion
kann man aber trotzdem Array-Indizierung verwenden.
Vielleicht wäre mal ein C-Buch angebracht.

von tastendrücker (Gast)


Lesenswert?

> Vielleicht wäre mal ein C-Buch angebracht.

Wieso, wir haben doch hier Karl Heinz (C-)Buch'egger?
SCNR


Aber in Ernst, deine Ausführungen sind immer erte Sahne! Machst du das 
eigentlich auch beruflich (Dozieren, (C-)Bücher schreiben...?

von Karl H. (kbuchegg)


Lesenswert?

> Machst du das
> eigentlich auch beruflich (Dozieren,

Nicht mehr.

> (C-)Bücher schreiben...?

Dazu hab ich nicht die Geduld.

von Marcel K. (viewer)


Lesenswert?

Hallo  Karl heinz Buchegger,

vielen Dank für deine Ideen. Also ich weiß schon wie das mit den Zeigern 
funktioniert, allerding ist das schon über 2 Jahre her als ich das 
wissen musste. Ich müsste mich halt noch mal richtig einlesen :o)

Das mit der speicherung in einer kompletten Zahl finde ich echt genial!! 
So kann man eine Uhrzeit in einer einzelnen Zahl darstellen. Das spart 
Speicherplatz. Vielen Dank für den Tipp!!!

Herzlichen Dank und einen guten Rutsch.....

Grüße, Marcel

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.