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.