Last active
August 29, 2015 13:55
-
-
Save rlogiacco/8746262 to your computer and use it in GitHub Desktop.
Use the serial connection to debug your sketch
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef __SERIAL_DEBUG | |
#define __SERIAL_DEBUG | |
#if SERIAL_DEBUG | |
#ifndef SERIAL_DEBUG_SEPARATOR | |
#define SERIAL_DEBUG_SEPARATOR " | " | |
#endif | |
#define DEBUG_0() Serial.println("### SerialDebug ###") | |
#define DEBUG_1(A) Serial.println(A) | |
#define DEBUG_2(A,B) Serial.print(A);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.println(B) | |
#define DEBUG_3(A,B,C) Serial.print(A);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(B);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.println(C) | |
#define DEBUG_4(A,B,C,D) Serial.print(A);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(B);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(C);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.println(D) | |
#define DEBUG_5(A,B,C,D,E) Serial.print(A);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(B);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(C);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(D);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.println(E) | |
#define DEBUG_6(A,B,C,D,E,F) Serial.print(A);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(B);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(C);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(D);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(E);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.println(F) | |
#define DEBUG_7(A,B,C,D,E,F,G) Serial.print(A);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(B);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(C);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(D);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(E);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(F);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.println(G) | |
#define DEBUG_8(A,B,C,D,E,F,G,H) Serial.print(A);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(B);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(C);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(D);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(E);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(F);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(G);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.println(H) | |
#define DEBUG_9(A,B,C,D,E,F,G,H,I) Serial.print(A);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(B);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(C);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(D);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(E);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(F);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(G);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.print(H);Serial.print(SERIAL_DEBUG_SEPARATOR);\ | |
Serial.println(I) | |
#define DEBUG_X(x,A,B,C,D,E,F,G,H,I,MACRO, ...) MACRO | |
#define DEBUG(...) DEBUG_X(,##__VA_ARGS__,\ | |
DEBUG_9(__VA_ARGS__),\ | |
DEBUG_8(__VA_ARGS__),\ | |
DEBUG_7(__VA_ARGS__),\ | |
DEBUG_6(__VA_ARGS__),\ | |
DEBUG_5(__VA_ARGS__),\ | |
DEBUG_4(__VA_ARGS__),\ | |
DEBUG_3(__VA_ARGS__),\ | |
DEBUG_2(__VA_ARGS__),\ | |
DEBUG_1(__VA_ARGS__),\ | |
DEBUG_0(__VA_ARGS__)\ | |
) | |
#define SERIAL_DEBUG_SETUP(SPEED) Serial.begin(SPEED) | |
#else | |
#define DEBUG(...) | |
#define SERIAL_DEBUG_SETUP(SPEED) | |
#endif | |
#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment