#ifndef MAIN_H #define MAIN_H #ifdef RASPBERRY #include "bsl/raspberry/bsl_raspberry.hpp" #endif #ifdef ARM_MCU #include "bsl/nucleo_f042k6/bsl_nucleo_f042k6.hpp" #endif struct Delay { virtual void wait() = 0; }; struct FreeRTOS_Delay : Delay { void wait() override { _wait(); } private: static void _wait() { for(volatile int i = 0; i < 10; i++); } }; struct STM_Hal_Delay : Delay { void wait() override { _wait(); } private: static void _wait() { // systick stuff here for(volatile int i = 0; i < 1000; i++); } }; #endif /* MAIN_H */