Class Name: EE/CS 10b (Introduction to Digital Logic and Embedded Systems)
Institution: Caltech (Undergrad)
Project Duration: April-June 2023
Project Description: Implement the AVR Assembly coding for the Hexer Game.
Code here (if you would like to run it on ispLEVER)
Code but as a readable PDF here (Color coded, commented header for every file and function).
To the right is a video of me playing the game. Below are more details on how the game works, what it includes, how I structured the code, and how the game board was built.
Gameplay demonstration. Unfortunately the lit LEDs don't show up on camera very well, but try to spot them if you can!
Also, if you recognize the game music, you are very cool.
Game description and requirements. Courtesy of Prof. Glen George
TLDR: The point of the game is to use the buttons to turn all the game LEDS off.
My functional specification (Explains how I implemented the system requirements, as well as extra features I added)
Board schematic. The board was designed by Professor Glen George and built by the TAs.
AVR Assembly
Switch debouncing
Display multiplexing
Reading/writing from a SD card
Reading/writing through SPI
Writing functional specifications and tables of contents
Reading datasheets
You may notice that in the code, there are a lot of SD card files not alluded to in the functional spec or code architecture.
I did get my SD card read write functions to work independently in a different assignment. However, when I tried to call them in this project to save the game state to an SD card, they would break the whole game (get it stuck in the losing game state). Since this was not a requirement and I was tired I chose not to implement any SD card functions.