Estoy trabajando en el chip TLC5947 para controlar 24 Leds RGB para crear diferentes patrones con ellos. Mi preocupación es que tengo que seguir dando órdenes al pin SIN, SCLK, XLAT del microcontrolador en cada bucle para que mi patrón se repita una y otra vez.
Mi microcontrolador también está haciendo otras cosas, como hablar con sensores, controlar periféricos externos, etc.
¿Quería saber si hay alguna forma/hackeo en hardware/software por el cual puedo repetir la secuencia usando el controlador LED IC mientras mantengo mi microcontrolador desocupado?
La forma habitual de manejar este tipo de cosas es con una interrupción periódica del temporizador. Digamos que su bucle debe repetirse cada 50 ms, configure un temporizador de hardware para interrumpir el procesador, actualice su pantalla y regrese de la ISR (rutina de servicio de interrupción). Si su estilo de codificación actual incluye desperdiciar miles de millones de ciclos en bucles de retardo, se deshace de eso. Lo más probable es que esté utilizando un SPI de hardware rápido para hablar con el chip, por lo que generar 72 bits de datos de encendido/apagado no llevará mucho tiempo, tal vez <100useg, por lo que con una interrupción de 50ms, el 99,8% del ancho de banda de su procesador todavía está disponible (prácticamente 'desocupado' a efectos prácticos)
Para las "otras cosas" que está haciendo, su procesador parece ser un poco (dependiendo de cuánto tiempo tome su ISR) más lento y un poco más entrecortado en su funcionamiento (a veces desaparece un poco). Por lo general, no es demasiado difícil codificar eso.
Estaba considerando el TLC5947, y su hoja de datos afirma que tiene "repetición de pantalla automática", por lo que el PWM debería funcionar sin una entrada periódica del microcontrolador. También eché un vistazo rápido a la biblioteca Arduino de Adafruit para el TLC5947 y no vi ninguna interrupción, etc.
Pero terminé sin usar el TLC5947 porque tiene "problemas de parpadeo" y usé el TLC59711 en su lugar, para el cual incluso escribí una biblioteca . Para obtener detalles sobre el parpadeo, consulte mi publicación de Disqus .
Gesto de desaprobación
Majenko
venny
KyranF
popa ulrich