Utskrift av GIF på VGA från SD-kort med hjälp av Zybo styrelsen (6 / 7 steg)
Steg 6: Utmatningen till VGA-bildskärm
R, G och B värdena i .bin filerna var åtskilda med kommatecken. I slutet av varje rad av pixelvärden fanns en ny linje karaktär. Först vi upprepade genom image-filen och ersatt varje ny rad med ett kommatecken. Sedan använde vi strtok för att sätta varje enskilt värde i .bin i en array eftersom de var nu åtskilda med endast kommatecken.
Med R, G och B värden i 3 olika matriser var det nu enkelt att utdata till VGA-bildskärm.
Vi skulle först hämta en adress till utgången på AXI GPIO kanalen som gick till adress-ingången på blocket minne generatorn. Vi skulle sedan individuellt ställa R, G och B GPIO från värdena i de 3 matriserna. Efter söka igenom alla celler i arrayer, skulle bilden visas på VGA-bildskärm.
Vi skulle upprepa denna cykel med varje bildfil och sätta i en liten fördröjning så att det visas som en GIF.
Det fanns några hinder för utskrift till VGA-bildskärm så vi var tvungna att kompensera med mindre tweaks. Först och främst, adresserna inte utgången linjärt på VGA-bildskärm. Vi spelade tills vi räknat ut att pixlar skapades från topp till botten start från 64 adress i steg om 1 till adress 224. Vi upptäckte också att pixlar var utdata från höger till vänster från adresser från 11520 till ca 75000 i steg om 256. Vi brukade dessa skapa en dubbel forloop som drabbade alla rätt adresser så att en bild skulle visas korrekt på skärmen.
Ovanstående metod utgång bilder på skärmen, men de var inverterad och vänt. För att åtgärda detta, genomförde vi ett sätt för index av R, G och B värden att hoppa runt annorlunda, att gå från toppen till botten i stället för från höger till vänster. Detta vänt och inverterad på bilden för att visas som vanligt.
Alla av FileIO, VGA utskrift och justering kod kan alla hittas i filen main_blinky.c som ingår i denna handledning.