#pragma once #include #include "types.hpp" class PWM { public: PWM(int chip, int channel, unsigned int period_ns); ~PWM(); void setDutyCycle(unsigned int duty_ns); void setPeriod(unsigned int period_ns); void enable(bool on = true); void setPolarity(const char* pol = "normal"); unsigned int readPeriod() const { return _period_ns; } private: int _chip; int _channel; unsigned int _period_ns; bool _exported; std::string _basePath() const; void _export(); void _unexport(); };