ELEC-C7222
Libraries for ELEC C7222 Course Work
Loading...
Searching...
No Matches
pwm.hpp
Go to the documentation of this file.
1
43
#ifndef ELEC_C7222_DEVICES_PWM_HPP
44
#define ELEC_C7222_DEVICES_PWM_HPP
45
46
#include <cstdint>
47
48
#include "
non_copyable.hpp
"
49
50
namespace
c7222
{
51
63
class
PwmOut
:
public
NonCopyableNonMovable
{
64
public
:
68
struct
Config
{
70
uint32_t
pin_
;
72
float
period_us
{1000.0f};
74
float
duty_cycle
{0.0f};
76
bool
enabled
{
true
};
78
bool
active_low
{
false
};
79
84
explicit
Config
(uint32_t pin);
89
bool
Validate
()
const
;
90
};
91
95
explicit
PwmOut
(uint32_t pin);
101
explicit
PwmOut
(uint32_t pin,
const
Config
& config);
102
108
virtual
~PwmOut
();
109
114
void
Configure
(
const
Config
& config);
118
void
SetPeriodUs
(
float
period_us);
122
void
SetDutyCycle
(
float
duty_cycle
);
126
void
SetActiveLow
(
bool
active_low);
130
void
Enable
(
bool
on);
131
135
uint32_t
GetPin
()
const
{
136
return
pin_
;
137
}
141
Config
GetConfig
()
const
{
142
return
config_
;
143
}
144
145
protected
:
151
void
ApplyConfig
();
152
154
uint32_t
pin_
;
156
Config
config_
;
157
};
158
159
}
// namespace c7222
160
161
#endif
// ELEC_C7222_DEVICES_PWM_HPP
c7222::NonCopyableNonMovable
Disable both copy and move operations.
Definition
non_copyable.hpp:75
c7222::PwmOut
Output-only PWM wrapper with period and duty configuration.
Definition
pwm.hpp:63
c7222::PwmOut::Enable
void Enable(bool on)
Enable or disable the PWM output.
c7222::PwmOut::config_
Config config_
Cached configuration used to (re)apply platform settings.
Definition
pwm.hpp:156
c7222::PwmOut::SetActiveLow
void SetActiveLow(bool active_low)
Set PWM polarity (active-low when true).
c7222::PwmOut::ApplyConfig
void ApplyConfig()
Apply internal configuration to the hardware.
c7222::PwmOut::SetPeriodUs
void SetPeriodUs(float period_us)
Set PWM period in microseconds.
c7222::PwmOut::~PwmOut
virtual ~PwmOut()
Destructor.
c7222::PwmOut::PwmOut
PwmOut(uint32_t pin, const Config &config)
Create a PWM output with the given configuration.
c7222::PwmOut::SetDutyCycle
void SetDutyCycle(float duty_cycle)
Set PWM duty cycle fraction [0.0, 1.0].
c7222::PwmOut::PwmOut
PwmOut(uint32_t pin)
Create a PWM output with default configuration.
c7222::PwmOut::Configure
void Configure(const Config &config)
Apply a new configuration.
c7222::PwmOut::pin_
uint32_t pin_
GPIO pin number managed by this instance.
Definition
pwm.hpp:154
c7222::PwmOut::GetConfig
Config GetConfig() const
Return the cached configuration.
Definition
pwm.hpp:141
c7222::PwmOut::GetPin
uint32_t GetPin() const
Return the GPIO number.
Definition
pwm.hpp:135
duty_cycle
float duty_cycle
Current PWM duty cycle used to dim LED3_RED.
Definition
main_freertos_device.cpp:96
c7222
C7222 course abstractions namespace.
Definition
ble.hpp:20
non_copyable.hpp
Base classes to control copy/move semantics.
c7222::PwmOut::Config
Configuration structure for PWM output setup.
Definition
pwm.hpp:68
c7222::PwmOut::Config::active_low
bool active_low
Invert PWM output polarity when true (active-low).
Definition
pwm.hpp:78
c7222::PwmOut::Config::period_us
float period_us
PWM period in microseconds.
Definition
pwm.hpp:72
c7222::PwmOut::Config::pin_
uint32_t pin_
GPIO pin number.
Definition
pwm.hpp:70
c7222::PwmOut::Config::Config
Config(uint32_t pin)
Create config with a pin number.
c7222::PwmOut::Config::duty_cycle
float duty_cycle
Duty cycle fraction [0.0, 1.0].
Definition
pwm.hpp:74
c7222::PwmOut::Config::enabled
bool enabled
Enable PWM output on init.
Definition
pwm.hpp:76
c7222::PwmOut::Config::Validate
bool Validate() const
Validate configuration.
libs
elec_c7222
devices
include
pwm.hpp
Generated by
1.9.8