por lo que entendí, en mi interrupciones se ejecutan cada 1milisegundo, cuando doy en alta mi bandera de que entro a esa interrupción dejo pasar 100microsegundos y después de ese tiempo se queda apagada 900 microsegundos restantes para que vuelva a empezar con la interrupción de cada 1 milisegundo (que es donde prendo mi leds) asiendo el total de que para cada 1 milisegundo 100 microsegundos estén prendidos y 900 apagados. esto lo hago de este modo para poder darle por así decirlo un golpe muy fuerte de amperaje, porque estos leds funcionan con 20mA a su máximo brillo, pero al multiplexar los leds ya es tan rápido el encendido y el apagado que los 20mA que necesitarían ahora solo iluminarían muy poco, por lo que el fabricante recomienda que para multiplexados a su máximo amperaje posible sean esos tiempos.
ya que en multiplexado ahora el máximo brillo se conseguí con 200mA que es 10 veces mas de lo que necesita.
y recurrí a este foro, porque ya había echo que brillaran mis leds con transistores, y drives, sin embargo el brillo no era lo suficiente para ser claro en la luz del sol, por lo que estuve buscando y encontré que existe una manera de hacerlo mediante programación. Que es la que ustedes me explicaron, y ya en esta semana que paso profundice mas en el tema y me pudo salir de echo ahorita sin uso de transistores ya brilla mas que antes igual sin transistores, pero aun le falta bastante brillo que ya lo podre obtener con transistores y resistencias.
y como yo lo manejo es que prendo las columnas que son 32 y en las filas muestro las letras mediante el puerto A. por ende cada columna el ciclo de trabajo es de 1 milisegundo totalizando un barrido en 32 milisegundos. antes mi recorrido de cada columna era de 550 microsegundos, lo cual hacia que tuviera una perdida mayor de brillo y no encontraba como poder subir mas tiempo, porque a la frecuencia que ahorita manejo en mi código anterior con delays y demás ya se veía feo el parpadeo ahorita ya no se ve ese parpadeo, por eso recurrí a este método.
no se si puede aclarar un poco mas porque lo hice asi?