Hallo,
ich habe ein ungewöhliches problem wenn ich ein NRF24L01 Modul einsetzen will.
Die Hardware läuft perfekt. mit dem Testsketch.
Jetzt will ich die Übertragung mit einem exaktes Timing vorsehen.
void loop(void)
{
//**** Scheduler, generates 8 slices@125mS (0..7) and within each slice, 125 millislices (0..124) ****
// Forming millislice number
millis_slice = millis() % 125UL; //We make a modulo division with the milliseconds.
//The result will be directly the expected milliSlice value, that behaves like a chainsaw between 0..124
if (millis_memory > millis_slice) //We trigger on the falling edge of the chainsaw.
{
//============== Running every 125mS ================
unsigned long start_time = micros();
// ok = radio.write( &start_time, sizeof(unsigned long));
delayMicroseconds(1560);
Serial.println(start_time);
unsigned long end_time = micros();
Serial.println(end_time - start_time);
} // end 125mS
millis_memory = millis_slice; // Comparison value to detect the falling edge.
} //end Loop.
Im OG code habe ich das Radiobefehl auskommentiert und stattdessen ein delay angegeben.
Das timing läuft perfekt.
Jetzt habe ich das Delay auskommentiert und das Radiobefehl aktiviert.
ok = radio.write( &start_time, sizeof(unsigned long));
// delayMicroseconds(1560);
Jetzt klappt es nicht mehr, D13 (SPI Takt) leuchtet ständig und nichts wird protokolliert.
Das Radiobefehl läuft sonst gut und verbraucht ziemlich konstant 1560 μS.
Hat jemand eine Idee, was da abläuft?