diff --git a/targets/TARGET_STM/lp_ticker.c b/targets/TARGET_STM/lp_ticker.c index 964b508cee7..953111270ff 100644 --- a/targets/TARGET_STM/lp_ticker.c +++ b/targets/TARGET_STM/lp_ticker.c @@ -242,7 +242,17 @@ void lp_ticker_init(void) LptimHandle.State = HAL_LPTIM_STATE_RESET; LptimHandle.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC; #if defined(MBED_CONF_TARGET_LPTICKER_LPTIM_CLOCK) -#if (MBED_CONF_TARGET_LPTICKER_LPTIM_CLOCK == 4) +#if (MBED_CONF_TARGET_LPTICKER_LPTIM_CLOCK == 128) + LptimHandle.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV128; +#elif (MBED_CONF_TARGET_LPTICKER_LPTIM_CLOCK == 64) + LptimHandle.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV64; +#elif (MBED_CONF_TARGET_LPTICKER_LPTIM_CLOCK == 32) + LptimHandle.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV32; +#elif (MBED_CONF_TARGET_LPTICKER_LPTIM_CLOCK == 16) + LptimHandle.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV16; +#elif (MBED_CONF_TARGET_LPTICKER_LPTIM_CLOCK == 8) + LptimHandle.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV8; +#elif (MBED_CONF_TARGET_LPTICKER_LPTIM_CLOCK == 4) LptimHandle.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV4; #elif (MBED_CONF_TARGET_LPTICKER_LPTIM_CLOCK == 2) LptimHandle.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV2; diff --git a/targets/targets.json b/targets/targets.json index d26e94f586f..6b7e34d5131 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -1256,8 +1256,9 @@ "macro_name": "LPTICKER_DELAY_TICKS" }, "lpticker_lptim_clock": { - "help": "Default value for LPTIM clock (lpticker_lptim == 1). Value is the dividing factor. Choose 1, 2 or 4", - "value": 1 + "help": "Default value for LPTIM clock (lpticker_lptim == 1). Value is the dividing factor. Choose 1, 2, 4, 8, 16, 32, 64 or 128", + "value": 1, + "constraint": "Disclaimers : values from 8 to 128 have impacts on mbed-os timer precision and therefore on scheduling. It's not supported by mbed-os. Use it if you know what you're doing such as long low power sleep." }, "gpio_reset_at_init": { "help": "if value set, all GPIO are reset during init",