Paso 6: Salida a Monitor VGA
Los valores R, G y B en los archivos .bin fueron separados por comas. Al final de cada fila de valores de píxel había un carácter de línea nueva. Primero, el archivo de imagen en iteración y sustituye cada salto de línea por una coma. Entonces solíamos strtok para poner cada valor único en el .bin en una matriz ya que ahora fueron separados por comas solamente.
Con los valores R, G y B en 3 diferentes arreglos de discos, fue simple de salida para el monitor VGA.
Primero se escoge una dirección a la salida del canal de AXI GPIO que fue a la entrada de la dirección del generador de memoria de bloque. Entonces individualmente establecemos el R, G y B GPIO desde los valores de las 3 matrices. Después de recorrer todas las celdas de los arreglos de discos, la imagen aparecería en la pantalla.
Repetir este ciclo con cada archivo de imagen y poner en un pequeño retardo para hacer que aparece como un GIF.
Hubo algunos obstáculos a hacer salir al monitor VGA, así que tuvimos que compensar con ajustes menores. En primer lugar, las direcciones no salida linealmente en el monitor VGA. Jugamos hasta que descubrió que píxeles fueron creados de arriba abajo a partir de la dirección 64 en incrementos de 1 hasta dirección 224. También nos enteramos que píxeles se generan de derecha a izquierda de direcciones a partir de 11520 a unos 75000 en incrementos de 256. Hemos utilizado estos para crear un doble forloop que afectó a todas las direcciones correctas para que una imagen aparecerán correctamente en la pantalla.
El método anterior de salida de imágenes a la pantalla, sin embargo fueron invertidas y giradas. Para solucionar esto, implementamos una forma de los índices de los valores R, G y B a saltar alrededor de forma diferente, va de arriba a abajo en vez de derecha a izquierda. Esta volteado e invierte la imagen para aparecer normalmente.
Todos del FileIO, salida VGA y código de ajuste todos los encontramos en el archivo main_blinky.c incluido con este tutorial.