The test currently uses static globals for communication without any protection.
This could lead optimizing C compilers to deduce that access to those are not
needed (e.g. with LTO enabled). Using C11 atomics is the easiest way to tell
the compiler that those accesses are used for communication between two
different threads of execution (here: between the ISR and the main thread).