Paso 5: Cómo funciona
PROGMEM
En primer lugar, creo que necesito para tratar lo que PROGMEM es para principiantes. PROGMEM es la manera de almacenar las variables en la memoria de programa en lugar de la memoria dinámica o SRAM. Si un esquema tiene demasiadas variables globales, uno puede superar la cantidad de SRAM. Cuando esto sucede, el bosquejo no funcionará y se estrellará. Todas las variables por lo que uno puede mover a la memoria de programa para liberar espacio dentro de SRAM. Sin embargo, funciones especiales deban ser llamado para recuperar las variables de espacio de memoria de programa. Es complicado y puede ser muy frustrante a veces, pero es lo mejor que puede hacer cuando se trabaja con matrices muchas para ahorrar espacio (SRAM). Consulte aquí para más detalles y ejemplos.
Cómo funciona la canción:
Para reproducir tonos múltiples, divido cada ritmo en cuatro tiempos más pequeño - que llamé ritmos mini. Así que cada mini beat es equivalente a un 16 de nota. Estos mini beats actúan como el contador para cuando una nota se debe tocar y cuándo debe terminar - simple como eso. En la actualidad, el ritmo mini solo necesita ser la nota más pequeña dentro de toda la pieza. Elegí un 16 nota porque muy pocos tienen 32 notas. ¿Sí, algunos pedazos de orquesta tienen 32 notas, pero realmente quiere juegue en un arduino? En cualquier caso, sería muy fácil cambiar a 32 beats mini de Nota Si lo desea.
Cómo funciona la animación:
En lugar de escribir todos mis char custom arrays en binario, octal o hexadecimal, todo está escrito en decimal. De hecho puede crear a caracteres personalizados utilizando valores decimales entre 0-31.
Ahora el equipo todavía considera el entero valor binario en el back-end, por lo que mediante el uso de operaciones de bit puede cambiar ese valor simplemente agarrar una subcadena de longitud cinco de él para la creación de caracteres personalizados. (Nota: cada panel de 16 x 2 LCD es cinco píxeles de ancho).
Por ejemplo: mirar mi hoja de cálculo de excel, decir quiero los primeros cinco píxeles de kk slider en fila 0 de columnas de 12-8. El valor decimal de toda la fila es 896 - 0001110000000 en binario. Así que si cambio 896 ocho veces a la izquierda, voy a llegar 3 - que es 00011 en binario.
Hacer lo anterior en total de ocho filas para obtener datos suficientes para crear a un carácter personalizado. Es lo esencial de él.
Entonces, ¿por qué utilizar valores decimales? Realmente no tienes que, puramente por estética. Escribir un montón de 0 y de 1 podría conducir loco y hay mucho más margen de error. Además, no me gusta tener una toma char custom tantas filas, es por eso solo meter una imagen en una sola fila. Si estaba usando valores binarios cada fila sería super largo para recorrer. Por lo que es lo que prefiere. Para mi sorpresa, mi bosquejo funciona de cualquier manera (lo he comprobado y).