Al ejecutar el siguiente código en mi Arduino Micro, solo se imprime la primera línea:
void crash(void) {
abort();
}
void setup(void) {
Serial.begin(9600);
while(!Serial.available()) {
Serial.println("Please input something to begin");
delay(500);
}
Serial.println("First"); // Gets printed
delay(500); // Make sure Arduino is done writing to the serial connection
Serial.println("Second"); // Doesn't get printed
crash(); // Makes the Arduino device crash
}
void loop(void) {
}
Me gustaría algo como esto para imprimir la segunda línea, antes de que el dispositivo se caiga:
void setup(void) {
Serial.begin(9600);
while(!Serial.available()) {
Serial.println("Please input something to begin");
delay(500);
}
Serial.println("First"); // Gets printed
delay(500); // Make sure Arduino is done writing to the serial connection
Serial.println("Second"); // Doesn't get printed
wait_for_serial_write(); // Not really a function
crash(); // Makes the Arduino device crash
}
void loop(void) {
}
¿Qué función puedo usar en lugar de wait_for_serial_write
?
La razón por la que quiero hacer esto es porque mi Arduino se bloquea "aleatoriamente", por lo que puse algunas declaraciones de debug Serial.println
, que me gustaría ver antes de que el dispositivo se caiga.
También no puedo usar delay
en mi código real, ya que el bloqueo se produce mientras se produce una interrupción del temporizador, donde delay
no funciona.