#pragma once #include class PulseSequencer { public: void set_periods(uint32_t* periods, uint16_t periods_count, bool pin_start_state); void start(); void stop(); ~PulseSequencer(); private: uint16_t period_index; uint16_t periods_count; uint32_t* periods; bool pin_start_state; bool pin_state; void init_timer(uint32_t period); void deinit_timer(); void reset_period_index(PulseSequencer* _this); void (*callback_pointer)(void*, void*); void timer_elapsed_callback(void* hcomp, void* comp_ctx); };