Danke Uwe,
allerdings hab mir jetzt auf einem Breadboard noch ein Arduino mit einem 328 zusammen gesteckt.
Dieser hat folgenden Code (abgewandelt vom timedsend-Bsp)
/// @dir timedSend
/// Experiment with time-controlled periodic transmission.
// 2011-06-24 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php
#include <JeeLib.h>
MilliTimer sendTimer;
byte pending;
word seqnum;
void setup () {
Serial.begin(57600);
Serial.println("\n[timedSend]");
rf12_initialize(25, RF12_433MHZ, 4);
pinMode(13, OUTPUT);
}
void loop () {
if (rf12_recvDone() && rf12_crc == 0 && rf12_len == 2) {
sendTimer.set(0);
Serial.print(" #");
Serial.print(seqnum);
Serial.print(" start: ");
Serial.print(rf12_data[0], DEC);
Serial.print(" recvd: ");
Serial.println(rf12_data[1], DEC);
}
if (rf12_canSend()) {
pending = 0;
rf12_sendStart(RF12_HDR_ACK, "hello!", 6);
++seqnum;
}
}
Der Mega hat eine abgewandelte Version von TimedRecv-Bsp drauf.
/// @dir timedRecv
/// Experiment with time-controlled periodic reception.
// 2011-06-24 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php
#include <JeeLib.h>
#include <avr/sleep.h>
struct {
byte start; // time at which we started listening for a packet
byte later; // how long we had to wait for packet to come in
} payload;
void setup () {
rf12_initialize(26, RF12_433MHZ, 4);
Serial.begin(57600);
Serial.println("Receiver on");
}
void loop () {
if (rf12_recvDone() && rf12_crc == 0) {
// process incoming data here
Serial.println("test");
if (RF12_WANTS_ACK) {
payload.later = (byte) millis() - payload.start;
rf12_sendStart(RF12_ACK_REPLY, &payload, sizeof payload);
rf12_sendWait(1); // don't power down too soon
}
}
}
Irgendwie klappts dennoch nicht. Ich dachte, das Setup würde etwas einfacher sein
