pulse_sequencer.h 571 B

1234567891011121314151617181920212223242526
  1. #pragma once
  2. #include <stdint.h>
  3. class PulseSequencer {
  4. public:
  5. void set_periods(uint32_t* periods, uint16_t periods_count, bool pin_start_state);
  6. void start();
  7. void stop();
  8. ~PulseSequencer();
  9. private:
  10. uint16_t period_index;
  11. uint16_t periods_count;
  12. uint32_t* periods;
  13. bool pin_start_state;
  14. bool pin_state;
  15. void init_timer(uint32_t period);
  16. void deinit_timer();
  17. void reset_period_index(PulseSequencer* _this);
  18. void (*callback_pointer)(void*, void*);
  19. void timer_elapsed_callback(void* hcomp, void* comp_ctx);
  20. };