Hola.
Según esto: http://arduino.cc/es/Reference/Setup
El setup se ejecuta una sola vez cuando arranca un sketch. Entiendo que cuando cargas un nuevo sketch desde el entorno de programación, se ejecuta el setup y ya no se vuelve a ejecutar hasta que se restea o cargas un nuevo programa.
Pero resulta que no. He hecho un programa para monitorizar el arduino:
Monitorizacion:
gint leer,cont;
gboolean acabo_sn;
gchar buf[128];
gint fd; //el puerto serie
fd = iniciar_puerto_serie("/dev/ttyACM0",115200);
usleep(10000); //No estoy seguro de que esto tenga que ir aquí...
tcflush(fd,TCIFLUSH); //despues de leer se flushea el buffer del serie
for(leer=0;leer < 128;leer++) buf[leer] = 0x00;
acabo_sn = FALSE;
cont = 0;
while(!acabo_sn) {
leer = read(fd,buf,128);
if(leer > 0 AND leer < 128) {
//printf("leer=%d buf->\n\n%s",leer,buf);
printf("%s",buf);
for(leer=0;leer < 128;leer++) buf[leer] = 0x00;
leer = 0;
tcflush(fd,TCIFLUSH); //despues de leer se flushea el buffer del serie
if (cont++ > 20) acabo_sn = TRUE;
}
}
Este programa simplemente muestra lo que el arduino envía por el serie.
Y este es el programa del arduino.
void setup()
{
Serial.begin(115200); // abre el puerto serie, y le asigna la velocidad de 115200 bps
Serial.println("SEEEEEEEETUUUUUUUUUUUP");
delay (1000);
}
void loop()
{
Serial.println("Estoy vivo");
delay(1000);
}
Pues bien, cuando arranca el programa del ordenador, cada vez lo primero que veo en la pantalla es :
SEEEEEEEETUUUUUUUUUUUP
Es decir que cada vez que ejecuto ele programa del ordenador el arduino se resetea o de alguna manera la ejecución pasa por la función setup().
Entiendo que no debería.
¿O es que me falta configurar algo?.