Stap 6: Uitvoeren naar de VGA-Monitor
De R-, G- en B-waarden in het .bin-bestanden werden gescheiden door komma's. Aan het einde van elke rij met pixelwaarden was er een nieuw lijn karakter. Ten eerste, we herhaald door het afbeeldingsbestand en elke nieuwe regel vervangen door een komma. Dan wij gewend strtok elke één waarde in het .bin in een matrix plaatsen omdat ze nu door alleen komma's gescheiden zijn.
Met de R, G en B-waarden in 3 verschillende reeksen was het nu eenvoudig te output naar de VGA-monitor.
We zouden eerst een adres wilt uitvoeren op de AXI GPIO kanaal dat ging naar de adresinvoer van de blok geheugen generator halen. We zouden vervolgens afzonderlijk ingesteld de R, G en B GPIO van uit de waarden in de 3 matrices. Na het doorlopen van alle cellen van de matrices, lijkt de afbeelding op de VGA-monitor.
Wij herhalen deze cyclus met elk beeldbestand en zet in een lichte vertraging te maken lijken als een GIF.
Er waren een paar hindernissen naar outputting naar de VGA-monitor, dus moesten we compenseren met kleine aanpassingen. Eerst deed af, de adressen niet uitgang lineair op de VGA-monitor. We speelden rond totdat we bedacht dat de pixels van boven naar beneden vanaf adres 64 in stappen van 1 tot adres 224 werden gemaakt. Ook ontdekten we dat pixels werden output van rechts naar links uit vanaf 11520 tot ongeveer 75000 in stappen van 256 adressen. We deze gebruikt voor het maken van een dubbele forloop die treffer alle de juiste adressen zodat een afbeelding op het scherm correct lijkt.
De bovenstaande methode output beelden op het scherm, maar ze werden omgekeerd en omgedraaid. Om dit te verhelpen, wij een manier voor de indexen van de waarden van R, G en B springen rond verschillend, gaande van boven naar beneden in plaats van van rechts naar links. Dit omgedraaid en ondersteboven van de afbeelding worden normaal weergegeven.
Alle van de FileIO, VGA-uitvoer en aanpassing code vindt u in het bestand main_blinky.c met deze tutorial.