PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Wert "umwandeln"



Zun
09.04.2012, 16:14
Guten Tag :) ,

habe ein kleines Problem, weiß aber nicht so recht wie ich die Lösung dafür "ersuchen" kann.

Folgendes Problem :
ich setze meine DS1307 mit hilfe einer Funktion "set_clock(0x01, 0x36)" -> z.B. auf die 36 Minute.
Nun möchte ich mir mit Tastern ein Menü bauen, welches eine Variable hochzählt und dann die Minute setzt.
Nur wenn ich die Variable (0x01, "variable") setze kommt bei 36 -> die Ascii 24 raus und die setzt er dann.
Meine Frage nun, wie bekomme ich den "Pseudo" Hex Vorsatz "0x" vor meine hochgezählt Zahl ?

Im Bedarfsfall muss ich wohl meine komplette DS1307 Routine umschreiben (hat jemand Beispielcode für eine Ausgabe auf einem LCD ? )

Vielen Dank im Vorraus ;)

sternst
09.04.2012, 19:07
Meine Frage nun, wie bekomme ich den "Pseudo" Hex Vorsatz "0x" vor meine hochgezählt Zahl ?Nein, da hast du was missverstanden. Der DS1307 will die Zahl einfach nur im BCD-Format haben. Google danach, wenn du nicht weißt, was das ist. Für eine maximal 2-stellige Zahl geht das z.B. so:bcd = zahl / 10 * 16 + zahl % 10;

Zun
09.04.2012, 19:53
Hab meinen Fehler selbst gefunden :/

Ich hab folgende Funktion dafür geschrieben

char dectobcd(char zahl)
{
return ((zahl/10*16)+(zahl%10));
}

jedoch hab ich immer vergessen die variable = funktion(variable); zu setzen ... *g* .

Merci für deine Antwort :)