This code is a my take on blinkenlight
impressive DCF77 decoder running on NUCLEO-L053R8 board. All the BSP code is generated using STM32CubeMX.
The main tick
clock of the system comes from square wave output of DS3231 RTC clock configured to 1024Hz.
This way clock drift problems are eliminated. The overall concurrency handling mechanisms are inspired by:
Basically message passing
, state machines
and continuation-passing style
efficiently implemented in C.
This approach has its drawbacks and requires some attention, but fine grained concurrency and minimal footprint
is worth the effort. The code currently provides blinkenlights
phase detection algorithm and sync mark binning. Date and time decoding is missing. The project outputs binary trace
on one of the MCU UART ports. This allows gathering logs and analysing performance. Below some examples:
- MPLv2
If you have questions, contact Mariusz Ryndzionek at: