clock is a ATmega2560-based digital clock.
- Current time is regularly saved to an external EEPROM chip (PCF8594C-2)
- A High Endurance module implementing wear leveling for the external EEPROM
- High-level input system so one physical button can be used for multiple actions
- BCD to 7-segment decoding and digit multiplexing
- Most modules are hardware-independent and unit tested
- Stopwatch
- Reduce number of used pins by using an external BCD decoder
- Support for Nokia 5110 displays
To build the Arduino executable, simply open the repository in the Arduino IDE and compile as usual.
To build and run the tests on a PC use CMake to generate the VS solution/Makefiles:
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .
Then either run CTest or the test executable directly:
$ ctest -C Debug
OR
$ ./clock_tests
The EEPROM HE module implements the algorithm described in "AVR101: High Endurance EEPROM Storage".
Pin assignments are reconfigurable in config.h
.
We're using the utest.h unit testing library.