Hallo,
ich hab ein Cast Problem mit char und sprintf.
Das Problem liegt sicher in der Definition der Funktion oder wie ich das char[] zurückgebe.
Code:
char zeit(volatile unsigned long int zs)
{
char zeitstring[5];
uint16_t tag = floor(zs / 86400);
uint8_t stunde = floor((zs - (tag * 86400)) / 3600);
uint8_t minute = floor((zs - (tag * 86400) - (stunde * 3600)) / 60);
//uint8_t sekunde = floor(zs - (tag * 86400) - (stunde * 3600) - (minute * 60));
if(minute < 10 && stunde < 10) {
sprintf(zeitstring, "0%d:0%d", stunde, minute);
}
else if(stunde < 10) {
sprintf(zeitstring, "0%d:%d", stunde, minute);
}
else if(minute < 10) {
sprintf(zeitstring, "%d:0%d", stunde, minute);
}
else {
sprintf(zeitstring, "%d:%d", stunde, minute);
}
return zeitstring;
}
Ich bekomme auch 2 Warnungen. Aber bin auch durch rumprobieren nicht weiter gekommen.
warning: return makes integer from pointer without a cast
warning: function returns address of local variable
____
Die Funktion wird benutzt um die Zeit auf ein Display auszugeben. Da kommen aber nur krumme Zeichen.
Ich hoffe ihr könnt helfen.
Danke
Lesezeichen