#include "components/brightness/BrightnessController.h" #include #include "displayapp/screens/Symbols.h" #include "nrf_pwm.h" #include "drivers/PinMap.h" using namespace Pinetime::Controllers; void BrightnessController::Init() { nrf_gpio_cfg_output(PinMap::LcdBacklightLow); nrf_gpio_cfg_output(PinMap::LcdBacklightMedium); nrf_gpio_cfg_output(PinMap::LcdBacklightHigh); nrf_gpio_pin_set(PinMap::LcdBacklightLow); nrf_gpio_pin_clear(PinMap::LcdBacklightMedium); nrf_gpio_pin_clear(PinMap::LcdBacklightHigh); uint32_t out_pins[] = {PinMap::LcdBacklightHigh, PinMap::LcdBacklightMedium, NRF_PWM_PIN_NOT_CONNECTED, NRF_PWM_PIN_NOT_CONNECTED}; nrf_pwm_pins_set(NRF_PWM0, out_pins); nrf_pwm_enable(NRF_PWM0); nrf_pwm_configure(NRF_PWM0, NRF_PWM_CLK_8MHz, NRF_PWM_MODE_UP, 10000); nrf_pwm_loop_set(NRF_PWM0, 0); nrf_pwm_decoder_set(NRF_PWM0, NRF_PWM_LOAD_COMMON, NRF_PWM_STEP_AUTO); static nrf_pwm_sequence_t seq; seq.values.p_common = pwmSequence; seq.length = 1; seq.repeats = 0; seq.end_delay = 0; nrf_pwm_sequence_set(NRF_PWM0, 0, &seq); nrf_pwm_task_trigger(NRF_PWM0, NRF_PWM_TASK_SEQSTART0); }