ralphi: C/C++ Befehl time(NULL) falscher Wert? -GELÖST-

Beitrag lesen

Hi all,
ich muss mich erst mal entschuldigen – ein Problem zu schildern, dass es so nicht gibt.
Meiner Schlamperei ist zu verdanken, dass der ATTiny die gesendeten Werte falsch darstellt. Und der DS18(B)20 falsch gedeutet wird.
Natürlich funktioniert:

ERGÄNZUNG:
Wieso hantierst du eigentlich so umständlich mit einem time-Wert und dem Byte-Array herum? Wozu brauchst du das Array? Genügt nicht einfach sowas:

time_t stamp = time(NULL);
// weiterer Code ...
// weiterer Code ...
radio.write(&stamp, sizeof(stamp));

Ich hab mehr als 3 Sachen gleichzeitig implementiert und Murx im Speicher gemacht.
Auch der DS18(B)20 funktioniert, wenn man in der Box nicht DS18B20 und DS18S20 mischt - grr

ein anderer wäre eine union-Deklaration, so dass ein time_t und vier Bytes dieselben Adressen belegen:

union
 { time_t t;
   uint8  b[4];
 } stamp;

So kannst du denselben Speicherplatz einmal mit stamp.t als time-Wert ansprechen, und einmal mit stamp.b als Byte-Array.

Dachte das geht einfacher!?
Zitat:

Es ist allerdings genauso gut möglich eine Zeigervariable zu übergeben oder direkt die Speicherposition des Feldes:
char str[] = {'h','a','l','l','o','\0'};
char* pStr1 = str;
char* pStr2 = &str[0];
pStr1 und pStr2 zeigen auf den selben Speicherbereich

Sorry - AN ALLE :-0 Viele Grüße aus LA
ralphi

--
"Nicht alles was einfach ist, ist genial, aber alles was genial ist, ist einfach" - Albert E.