NRF24L01 example code with Arduino Uno and OpenCM

This could be solved by code like this
defining two macros

#define dbg(myFixedText, variableName) \
  Serial.print( F(#myFixedText " "  #variableName"=") ); \
  Serial.println(variableName);
// usage: dbg("1:my fixed text",myVariable);
// myVariable can be any variable or expression that is defined in scope

#define dbgi(myFixedText, variableName,timeInterval) \
  do { \
    static unsigned long intervalStartTime; \
    if ( millis() - intervalStartTime >= timeInterval ){ \
      intervalStartTime = millis(); \
      Serial.print( F(#myFixedText " "  #variableName"=") ); \
      Serial.println(variableName); \
    } \
  } while (false);
// usage: dbgi("2:my fixed text",myVar,myInterval);
// myVar can be any variable or expression that is defined in scope
// myInterval is the time-interval which must pass by before the next
// print is executed

and then use the macro very similar to any other function-call
instead of

  Serial.print("DXL: ");
  Serial.println(data.DXPos);   

code

dbgi("DXL:",data.DXPos,1000);

which does print the value DXPos only once every second (1000 milliseconds)

best regards Stefan

2 Likes