Paso 9: Firmware - parte 2: creación de Color
El código fuente completo está disponible en este repositorio de GitHub.
Como anteriormente mencionado, se utiliza un temporizador de 8 bits para el control de todos los colores de LED. Cada disparo de la comparan coincidir con ISR A señales de un evento de sincronización. Resolución de 4 implica valores reales de 0, 1, 2 y 3. Se utiliza una variable para contar qué hora de gatillo ISR actualmente es, y una instrucción switch-case se utiliza para hacer algunas cosas diferentes en momentos diferentes. Cuando la cuenta es igual a la máxima resolución, no pasa nada porque todos los LEDs deben permanecer en si ya están en, o permanecer fuera de si ya están fuera. En 0, es hora de cambiar el control a la siguiente de 8 columnas. Todos los LEDs son entonces establecer en, pero no se enciende. El código sigue a continuación para el caso de defecto que se encarga de todos los tiempos.
En este último caso, un bucle recorre en iteración cada LED RGB en la columna de activa para ambas matrices. Si el contador actual es igual al tiempo de apagado de R, G o B LEDs del color deseado, LED se encuentra apagado. Finalmente, los datos se cambia de puesto hacia fuera para los drivers de corriente constantede realmente encender los LEDs o apagado. Este cambio es una versión de bit-bang del actual protocolo SPI, con cada chip de controlador de LED tiene una línea de datos por separado para que puedan todos ser cargados a la vez.
A continuación, vamos a hablar sobre la operación predeterminada del controlador.