//MyDebug.h //Code fuer Arduino //Author Retian //Version 1.0 #ifndef MyDebug_h #define MyDebug_h #ifdef DEBUG_ON //Ausgabe am Seriellen Monitor #define DEBUG_BEGIN(rate) Serial.begin(rate) #define DEBUG_PRINTLN Serial.println() #define DEBUG_PRINT_VAL(val) Serial.print(val) #define DEBUG_PRINTLN_VAL(val) Serial.println(val) #define DEBUG_PRINT_TXT(txt) Serial.print(txt) #define DEBUG_PRINTLN_TXT(txt) Serial.println(txt) #define DEBUG_PRINT_TXT_VAL(txt, val) Serial.print(txt); Serial.print(val) #define DEBUG_PRINTLN_TXT_VAL(txt, val) Serial.print(txt); Serial.println(val) #define DEBUG_PRINT_TXT_VAL_TXT(txt1, val, txt2) Serial.print(txt1); Serial.print(val); Serial.print(txt2) #define DEBUG_PRINTLN_TXT_VAL_TXT(txt1, val, txt2) Serial.print(txt1); Serial.print(val); Serial.println(txt2) #define DEBUG_PRINT_PARAM(val1, val2, val3) Serial.print(val1); Serial.print(" "); Serial.print(val2); ); Serial.print(" "); Serial.print(val3); Serial.print(" ") #define DEBUG_PRINTLN_PARAM(val1, val2, val3) Serial.print(val1); Serial.print(" "); Serial.print(val2); ); Serial.print(" "); Serial.println(val3) #define DEBUG_PRINT_PARAM_DEL(val1, val2, val3, txt) Serial.print(val1); Serial.print(txt); Serial.print(val2); Serial.print(txt); Serial.print(val3); Serial.print(txt) #define DEBUG_PRINTLN_PARAM_DEL(val1, val2, val3, txt) Serial.print(val1); Serial.print(txt); Serial.print(val2); Serial.print(txt); Serial.print(val3); Serial.println(txt) #define DEBUG_PRINTLN_RUNTIME debug_time = millis() - debug_tp; Serial.print(F("Runtime: ")); Serial.print(debug_time); Serial.println(F(" ms")) #define DEBUG_PRINTLN_MICRO_RUNTIME debug_time = micros() - debug_tp; Serial.print(F("Runtime: ")); Serial.print(debug_time); Serial.println(F(" us")) //Ausgabe von Float-Zahlen mit Angabe der Nachkommastellen #define DEBUG_PRINT_FLOAT(val, dec) Serial.print(val, dec); #define DEBUG_PRINTLN_FLOAT(val, dec) Serial.println(val, dec); #define DEBUG_PRINT_TXT_FLOAT(txt, val, dec) Serial.print(txt); Serial.print(val, dec) #define DEBUG_PRINTLN_TXT_FLOAT(txt, val, dec) Serial.print(txt); Serial.println(val, dec) #define DEBUG_PRINT_TXT_FLOAT_TXT(txt1, val, dec, txt2) Serial.print(txt1); Serial.print(val, dec); Serial.print(txt2) #define DEBUG_PRINTLN_TXT_FLOAT_TXT(txt1, val, dec, txt2) Serial.print(txt1); Serial.print(val, dec); Serial.println(txt2) //Sonstige Befehle #define DEBUG_WAIT(txt, cond) if (cond) debugWait(txt) #define DEBUG_DELAY(debug_delay) delay(debug_delay) #define DEBUG_SET_TIMEPOINT debugSetTimePoint() #define DEBUG_SET_MICRO_TIMEPOINT debugSetMicroTimePoint() unsigned long debug_tp; unsigned long debug_time; //Funktionen void debugWait(const char* txt) { char incomming; while (Serial.available()) incomming = Serial.read(); incomming = 0; Serial.println(txt); Serial.println(F("Druecke 'c' fuer Weiter ...")); do { if (Serial.available() > 0) incomming = Serial.read(); } while (incomming != 'c'); while (Serial.available()) incomming = Serial.read(); } void debugSetTimePoint() { debug_tp = millis(); } /*void debugGetTime() { debug_time = millis() - debug_tp; }*/ void debugSetMicroTimePoint() { debug_tp = micros(); } /*void debugGetMicroTime() { debug_time = micros() - debug_tp; }*/ #else //Leere Makroruempfe, falls kein Debugging erwuenscht ist #define DEBUG_BEGIN(rate) #define DEBUG_PRINTLN #define DEBUG_PRINT_VAL(val) #define DEBUG_PRINTLN_VAL(val) #define DEBUG_PRINT_TXT(txt) #define DEBUG_PRINTLN_TXT(txt) #define DEBUG_PRINT_TXT_VAL(txt, val) #define DEBUG_PRINTLN_TXT_VAL(txt, val) #define DEBUG_PRINT_TXT_VAL_TXT(txt1, val, txt2) #define DEBUG_PRINTLN_TXT_VAL_TXT(txt1, val, txt2) #define DEBUG_PRINT_PARAM(val1, val2, val3) #define DEBUG_PRINTLN_PARAM(val1, val2, val3) #define DEBUG_PRINT_PARAM_DEL(val1, val2, val3, txt) #define DEBUG_PRINTLN_PARAM_DEL(val1, val2, val3, txt) #define DEBUG_PRINT_FLOAT(val, dec) #define DEBUG_PRINTLN_FLOAT(val, dec) #define DEBUG_PRINT_TXT_FLOAT(txt, val, dec) #define DEBUG_PRINTLN_TXT_FLOAT(txt, val, dec) #define DEBUG_PRINT_TXT_FLOAT_TXT(txt1, val, dec, txt2) #define DEBUG_PRINTLN_TXT_FLOAT_TXT(txt1, val, dec, txt2) #define DEBUG_WAIT(txt, cond) #define DEBUG_DELAY(dTime) #define DEBUG_PRINTLN_RUNTIME #define DEBUG_PRINTLN_MICRO_RUNTIME #define DEBUG_SET_TIMEPOINT //#define DEBUG_GET_TIMEPOINT #define DEBUG_SET_MICRO_TIMEPOINT //#define DEBUG_GET_MICRO_TIMEPOINT #endif #endif