2024-04-17 14:09:46 +01:00
|
|
|
#include "Light_PWM.h"
|
|
|
|
|
|
|
|
|
|
namespace portduino
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Configure PWM, fallback to BL on/off if no pwm available
|
|
|
|
|
*/
|
|
|
|
|
bool Light_PWM::init(uint8_t brightness)
|
|
|
|
|
{
|
|
|
|
|
if (_cfg.pin_bl >= 0) {
|
|
|
|
|
if (_cfg.pwm_channel == -1) {
|
|
|
|
|
setBrightness(brightness);
|
|
|
|
|
} else {
|
2024-05-02 13:09:30 +02:00
|
|
|
// ledcAttachChannel(_cfg.pin_bl, _cfg.freq, _cfg.pwm_channel);
|
2024-04-17 14:09:46 +01:00
|
|
|
}
|
|
|
|
|
}
|
2024-05-02 13:09:30 +02:00
|
|
|
return true;
|
2024-04-17 14:09:46 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void Light_PWM::setBrightness(uint8_t brightness)
|
|
|
|
|
{
|
|
|
|
|
if (_cfg.pwm_channel == -1) {
|
|
|
|
|
if (brightness == 0) {
|
|
|
|
|
digitalWrite(_cfg.pin_bl, _cfg.invert);
|
|
|
|
|
} else {
|
|
|
|
|
digitalWrite(_cfg.pin_bl, !_cfg.invert);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
uint32_t duty_cycle = _cfg.freq * 1000 * brightness / 255;
|
2024-05-02 13:09:30 +02:00
|
|
|
// ledcWrite(_cfg.pin_bl, duty_cycle);
|
2024-04-17 14:09:46 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace portduino
|