By Shane J Pryor

This project investigates designing C code for use on an Atmel
ATmega644 microcontroller. The code outputs an NTSC video signal for
display on a television. The project consists of taking a working
implementation of the code for a different compiler and microcontroller
and porting it to new hardware and software. In addition, the code is
changed to be more efficient with a GCC compiler by using fewer
hardware registers and taking fewer cycles to execute the same
functionality. The resolution of the screen is more than doubled because
of the additional on-chip memory of the new hardware. The result of this
project is black and white video output with a screen buffer for storing the
current output frame. The buffer is manipulated through methods
provided in the code on a per-frame basis. Several design choices are
presented, with justification for the design methods chosen based upon
different trade-offs. The results of the project are presented with a
comparison to the previous version and a comparison to the initial design
specifications. The project is designed for use by students in a senior level
design course in electrical and computer engineering as the foundation for
a two week lab to design a video game.

Full report (pdf)

Source code