Fix furi_hal_bus related crashes in plugins (#2799)

* Fix furi_hal_bus issues in plugins
* Rework pwm is running check
* ApiSymbols: update and sync targets

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
MMX
2023-06-28 18:25:07 +09:00
committed by GitHub
co-authored by あく
parent e52fdcf109
commit ee96e34767
6 changed files with 59 additions and 10 deletions
@@ -82,6 +82,15 @@ void furi_hal_pwm_stop(FuriHalPwmOutputId channel) {
}
}
bool furi_hal_pwm_is_running(FuriHalPwmOutputId channel) {
if(channel == FuriHalPwmOutputIdTim1PA7) {
return furi_hal_bus_is_enabled(FuriHalBusTIM1);
} else if(channel == FuriHalPwmOutputIdLptim2PA4) {
return furi_hal_bus_is_enabled(FuriHalBusLPTIM2);
}
return false;
}
void furi_hal_pwm_set_params(FuriHalPwmOutputId channel, uint32_t freq, uint8_t duty) {
furi_assert(freq > 0);
uint32_t freq_div = 64000000LU / freq;
@@ -9,6 +9,7 @@ extern "C" {
#endif
#include <stdint.h>
#include <stdbool.h>
typedef enum {
FuriHalPwmOutputIdTim1PA7,
@@ -37,6 +38,13 @@ void furi_hal_pwm_stop(FuriHalPwmOutputId channel);
*/
void furi_hal_pwm_set_params(FuriHalPwmOutputId channel, uint32_t freq, uint8_t duty);
/** Is PWM channel running?
*
* @param[in] channel PWM channel (FuriHalPwmOutputId)
* @return bool - true if running
*/
bool furi_hal_pwm_is_running(FuriHalPwmOutputId channel);
#ifdef __cplusplus
}
#endif