El SDK de Arduino no compila el sketch completo bajo Fedora

El Arduino SDK con el Blink Bug 734855 ignora la rutina de prender y apagar el LED en el ejemplo blink

Aunque no he tenido mucho tiempo para jugar con Bug que tiene el SDK (o por lo menos la versión arduino-0022-4.fc15.noarch). El problema ocurre al tratar de hacer algunos sketch para novatos como lo es el de ‘blink’ que consiste en hacer titilar un LED. Veamos el siguiente código que esta basado en los ejemplos de blink:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}

Como ven el sketch le indica a Arduino que el pin 13 va a ser usado como salida y que va a prender y apagar esa señal indefinidamente por intervalos de medio segundo. Aunque el sketch es simple, al compilarlo y cargarlo con Fedora 15 usando el SDK versión arduino-0022-4 el sketch no se ejecuta apropiadamente, el procedimiento de compilación y de carga a la Arduino sucede sin ningún error pero el LED no hace nada.

 

La solución
Aparentemente este bug es provocado por rutinas de optimización de código al momento de compilar el sketch. Durante este proceso nuestra rutina que hace que el LED titile es descartada y eliminada del binario final. Para solventar este problema, solo debes de hacer una llamada de una variable que este afuera del la rutina ‘setup’, el código quedaría así:
boolean done = true;
void setup() {
pinMode(13, OUTPUT);
done = false;
}
void loop() {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}

Fíjense como al inicio se declara la variable ‘done’ con un valor de ‘true’ el cual es alterado dentro de la rutina ‘setup’ obligando al compilador a analizar mas detenidamente el código afuera de la rutina ‘setup’.

Me he tomado la libertad de mi Arduino, me he percatado de un reportar este Bug al responsable de este paquete, pueden seguir el avance de su solución en el Bugzilla de Red Hat Bug #734855

About orvtech

Para saber un poco mas de mi, puedes: Leer la pagina: Acerca de Oliver Rivas, Agregar mi perfil de a tus círculos. Sigueme por Twitter o Identi.ca. Hazte Fan de orvtech.com en facebook.