This is a simple chess timer for ARM devices. The timer is controlled by two buttons, one for each player. The timer is displayed on a 16x2 LCD display there are 3 buttons one for each player and one for reset
- GPIO (General Purpose Input/Output)
- Timer 2 (UpCounting mode)
- LCD : 16x2 Display used for displaying the time it's on 8-bit mode and data and pins are defined in the
lcd.h
file - External Interrupts : Used for the buttons and adjusted for the debouncing of the buttons
- Connect the LCD to the ARM device
- Connect the buttons to the ARM device
- Connect the ARM device to the computer
- Clone the repository
- make sure you have the arm-none-eabi-gcc, arm-none-eabi-gdb, arm-none-eabi-binutils, arm-none-eabi-newlib installed
- On Debian Based System (Althrough I am not sure) :
sudo apt-get install gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi newlib-arm-none-eabi
- On Arch Based System :
sudo pacman -S arm-none-eabi-gcc arm-none-eabi-gdb arm-none-eabi-binutils arm-none-eabi-newlib
- On Mac :
brew install gcc-arm-embedded
- On Windows : You are on your own!
- Open the project in vscode
- Install PlatformIO extension
- Specify the pins of the LCD in the
lcd.h
file - Specify the pins of the buttons in the
main.c
file - Upload the code to the ARM device using the PlatformIO extension
Walid Khamees |