An implementation of the classic arcade game Pong on a chipKIT Uno32 Basic Microcontroller Board
This project was developed jointly as part of the course Computer Organization and Components at KTH. A code skeleton was provided for basic hardware functionality, and the files mipslabmain.c
and pong.c
contain our additions.
About 85% of mipslabmain.c
and 100% of pong.c
were written by us.
The point of the project was to write directly to the hardware at a low level and not use built in libraries.
- Multiplayer
- Singleplayer against an AI with two difficulty options
- Players are controlled through the switches on the I/O Shield
- A Main menu with navigation done through switches and buttons
- A highscore which is saved between power-outs
- Pixel-by-pixel updates of all items on the display
- The code takes advantage of switches, buttons, timers, polling, interrupts and more.
- Writing to the OLED display was done through writing directly to the memory using the SPI protocol.
- A persistent highscore is implemented through writing directly to the EEPROM using the I2C protocol.