Bueno que Alan Burlison.
Esto no pretende ser embolsado de ninguna manera. El código hizo lo tenía que hacer. Gran éxito. Mi respuesta inicial en un comentario del foro fue dirigido realmente a la gente que donde ofrecer ideas no trabajo de utilizar una UART para obtener alguna ayuda de hardware.
Mi primera sugerencia de usar un temporizador para ayudar es en parte carne hacia fuera más abajo, pero no completamente funcional. La razón no es completa es que cuando empecé a llenar el código llegó a ser obvio que con un poco más optimización hay muchos relojes para hacer a full-monty como poco golpes sin tener que desenrollar los bucles.
El segundo bit de acción que se muestra aquí es mi otra sugerencia. Una de las personas "utilizar una UART" dijo que podría utilizar un inversor para arreglar el problema de BIT de arranque. Pensé "bien - si va a lanzar un 74XX en él, por qué no utilizar el SPI y tienen 140 ciclos de reloj gratis. Una vez más esto no es una solución completa, pero es una "prueba de concepto" para mostrar cómo el hardware puede ayudar.
Por último la tercera pieza es una versión de algo golpeando hacia fuera un WS2811 que se me ocurrió. Sin un WS2811 porque no tengo. No hace nada mejor que el código de alanos. Es sólo un poco más optimización (tamaño de 1/2) y más fácil de leer debido a la no desenrollarse del lazo y el alargamiento de ruta.
No rompe ninguna nueva tierra, no hay ninguna magia en lo que nadie ha usado alguna vez. Es sólo un poco me mostrando y un poco de práctica para mí. Me ha alejado el ensamblador durante varios años y estoy tratando de construir mi confianza un poco.
-En el espectáculo