#pragma once #include struct ActualPwm { uint32_t requestedHz; uint32_t actualHz; uint32_t requestedPulseNs; uint32_t actualPulseNs; float actualDutyPct; uint8_t bits; }; class PwmGenerator { public: void begin(); bool start(uint32_t frequencyHz, uint32_t pulseNs, ActualPwm &actual); void active(); void stop(); bool running() const { return running_; } private: bool running_ = false; };