Можно в callback указать функцию, которая будет дёргать другую функцию по указателю.
Указатель глобальный - при необходимости переопределяйте его.
Пример работы с указателями на функцию:
void start(char* p) {
Serial.println(p);
}
void (*Write)(char*);
void setup()
{
Serial.begin(9600);
Write = &start;
(*Write)("I've started, yeah! :)");
}
void loop()
}
}
Где (*Write)(char*) - указатель.