Hola a todos.
Repito: A mi parecer, la mejor manera de trabajar, es utilizando como unidad de memoria el eje de la matriz con menor cantidad de elementos. En estos carteles pasamensajes, eso seria hacerlo por columnas.
Fijense que si lo hacen por filas, la particion de la matriz se hace bidimensional, mientras que mapeandolo por columnas, es unidireccional. Además, cualquier operación que se realice sobre un elemento de 32 bits o bidireccional, resulta mucho más costosa para el compilador. Van a consumir la ROM del PIC mucho más rápido, excepto esten trabajando con uC nativos de 16 o 32 bits.
Con respecto al efecto de desplazamiento vertical. Por ejemplo, para levantar un texto que se esta mostrando, siempre y cuando hayan acomodado los datos por columnas como a mi me parece conveniente, solo basta con rotar a la izquierda cada una de los elementos(columnas). Si organizaron los datos de manera horizontal, la cosa no es tan sencilla pero puede hacerse. En el grafico puede verse que en ese caso habria que comenzar haciendo que Elemento 0 = Elemento 3, Elemento 1= Elemento 4, Elemento 2= Elemento 5, Elemento 3 = Elemento 6, Elemento 4= Elemento 7,etc...
Saludos.