Paso 2: inicialización
En primer lugar, incluimos las librerías necesarias para el dibujo. Además de las bibliotecas estándar de SPI y SD, que son necesarias para hablar con el escudo, he incluido la biblioteca del reproductor de MP3. Sentía como añadir a mi biblioteca, pero se quedó sin espacio en el Arduino.
Hablando de espacio... También, se incluye pgmspace.h para permitir el almacenamiento de las cadenas de comando mover grandes en el espacio del programa, liberando memoria de montón para su ejecución.
MemoryFree se incluye para la depuración.
El siguiente bloque de #defines son para definir alias para los tokens de comando. Cuando se compila, cada comando es representado por un símbolo numérico diferente. Utilizando la define, el programa es más fácil de leer. Una de mis filosofías.
A continuación, se definen todos los pines de Arduino en uso por el programa (señalé al escribir esto, que soundpin se escapó hacia arriba, fuera de lugar! Soundpin travieso!)
El comando mover estáticas se definen a continuación, con un include. Trataré en el siguiente paso de más detalle.
Entonces, la base de las matrices... la crème de la crème... el corazón y debe de sketch, se definen a continuación. Estos cuatro arreglos de discos, ScriptAction, ScriptDescription, ScriptOption y ScriptStack, se utilizan para contener el programa tokenizado. Contienen la acción, el objeto, el tiempo y el contador de secuencia de comandos para cada paso. Hay otro definir aquí, EndMain a ScriptSize la comparación. El valor se utiliza en dos lugares separados con diferentes intenciones - para que este definir permite el nombre adecuado con la función para que el valor se está utilizando.
Nota: para ver los ejemplos de código, haga clic en la imagen y abrir en otra pestaña. Puede acercarse a un tamaño más grande para ver el código! ¡ Pruébalo!
También, os he adjunto una copia del archivo de texto del programa, con identificación de las secciones en las que el código hace referencia a anotaciones. Utilizarlo como un documento del compañero.