mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hex Werte in Datum umwandeln


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin...
Wie kann ich aus den 0x0A und 0x0F ein gültige Uhrzeit bilden?
Eigentlich hätte ich lieber 10:15
Ich habe einen Zähler der mit diese Hex Werte übergibt.
Im ASCII Format bekomme ich natürlich andere Zeichen..
Jemand ne Idee?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit dem Windows-Taschenrechner kann man sehr schön zwischen den 
unterschiedlichen Darstellungsarten umschalten...

Aber im Ernst: Welches Format soll die "gültige Uhrzeit" denn haben? 
BCD? Und in welcher Programmiersprache soll das ganze geschehen?

Autor: ich&er (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
printf("\n Die Uhrzeit %d:%d",stunden,minuten);

dabei ist es doch egal in welchem format die 10=0x0A und die 15==0x0F 
vorliegen, formatiert wird das doch bei printf...

...oder wo liegt das problem genau?

Autor: flintston (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

In Assembler wäre folgendes zu tun:
- DAA (Umwandlung in BCD)
- Halbbytes trennen und jeweils 30h dazuadieren
- Ausgabe (Doppelpunkt nicht vergessen)

Gruß
Guido

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
printf-Befehle sind tabu für mich!
In Assembler programmiere ich nicht!
Das beste wäre eine passende C-Routine, falls jemand so was passendes 
hat!
Gruss Frank

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Funktion heißt itoa ... und das Thema wurde eigentlich wirklich 
schon ad nauseam durchgekaut.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es denn, wenn Du mal nicht sagst, was Du nicht willst, 
sondern was Du wirklich willst...

Du hast z.B. immer noch nicht gesagt, welches Format die Uhrzeit haben 
soll! BCD wäre einfach (in C)
unsigned char stunden_bcd, stunden_hex, minuten_bcd, minuten_hex;
stunden_bcd = ((stunden_hex / 10) << 4) | (stunden_hex % 10);
minuten_bcd = ((minuten_hex / 10) << 4) | (minuten_hex % 10);
Wenns ASCII sein soll, dann
unsigned char stunden[3], stunden_hex, minuten[3], minuten_hex;
stunden[0] = (stunden_hex / 10) | 0x30;
stunden[1] = (stunden_hex % 10) | 0x30;
minuten[0] = (minuten_hex / 10) | 0x30;
minuten[1] = (minuten_hex % 10) | 0x30;
stunden[2] = '\0';
minuten[2] = '\0';

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Auch wäre interessant, in welcher Form den die Ausgangswerte
vorliegen. Sind das int oder bytes: Dann versteh ich das Problem
nicht -> gib sie aus, so wie du jede andere Zahl ausgibst.
Liegt das Urmaterial in Stringform vor (weil die Uhrzeit
zb über eine Serielle eingelesen wurde): Dann muss man den
String halt mal in eine numerische Form konvertieren.

Autor: Lehrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Frank!

hast du genug Tipps bekommen, um deine Hausaufgaben jetzt selbst zu 
erledigen?
Wie wäre es mit einem Buch?
Vielleicht hilft auch eine Suchmaschine.

Stell doch einfach den Text der Aufgabe rein, dann müssen nicht alle 
raten, was du eigentlich willst.

Gruß

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.