Illustrates how a VGA signal can be generated entirely in software using an AVR microcontroller. This simple demo fills the entire screen with a single colour, which can be changed by connecting a switch up to pin 6 on PORT C. For other pin assignments, take a look at initPortsAndRegs
in vga.c
.
Note that this demo requires the AVR to be running off an external 20 Mhz clock. Also, it was tested on an old Dell LCD screen and may or may not work on other monitors, particularly CRTs.
This implementation is slightly different to others found elsewhere via googling in that it uses two timers - one for HSYNC and one for VSYNC.
In putting this together, I found the following to be invaluable sources of information: