Buenas.
Tengo el siguiente problema. Dentro del loop tengo una comparación concretamente esta ;
if (radio.state.frequency == 93.50)
{
picones();
}
funcona correcto, la función picones() resumida es esto;
void picones(){
#define u8g_ondacero1_width 128
#define u8g_ondacero1_height 64
static unsigned char u8g_ondacero1_bits[] U8G_PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
.... ... ... .. .. ..
0x00, 0x00, 0x00, 0x00 };
u8g.firstPage();
do {
u8g.drawXBMP( 0, 0, u8g_ondacero1_width, u8g_ondacero1_height, u8g_ondacero1_bits);
} while(u8g.nextPage());
delay(3000);
// while(1) {
// picones();
// }
}
Entra en bucle indefinidamente.cuando encuentra la comparación, y lo que deseo es detenerla (los 3 segundos que marca el delay)
He probado como se ve en el ultimo código while(1), pero se detiene todo el loop. A todo ello he investigado y encontré este código (no probado) concretamente este;
boolean stop_it = false;
void setup() {
Serial.begin(9600);
}
boolean stop_main_loop() {
if (stop_it == false) {
Serial.println ("Stpo detener una función en loop");
}
stop_it = true;
return stop_it;
}
void loop() {
stop_it = stop_main_loop();
}
Alguna sugerencia?. Gracias.