Files
Leo-ElixirLights/components/movement/include/pwmPort.hpp
T

35 lines
707 B
C++

/**
* @file pwmPort.hpp
* @author Gustice
* @brief C++ Wrapper for PWM-output
*
* @copyright Copyright (c) 2024
*/
#pragma once
#include "driver/gpio.h"
#include "driver/ledc.h"
#include "portBase.hpp"
#include <cstdint>
/**
* @brief PWM-Class
* @details Provides Write to PWM-Port
*/
class PwmPort : public PortBase {
public:
PwmPort(ledc_timer_t timer, ledc_channel_t channel, gpio_num_t output, ledc_timer_bit_t resolution, uint32_t frequency);
~PwmPort() = default;
void write(float duty);
void writeRaw(uint16_t duty);
protected:
const uint32_t FullScale;
const ledc_timer_t _timer;
const ledc_channel_t _channel;
const gpio_num_t _port;
private:
};