furi_hal_pwm.h 928 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * @file furi_hal_pwm.h
  3. * PWM contol HAL
  4. */
  5. #pragma once
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. #include <stdint.h>
  10. typedef enum {
  11. FuriHalPwmOutputIdTim1PA7,
  12. FuriHalPwmOutputIdLptim2PA4,
  13. } FuriHalPwmOutputId;
  14. /** Enable PWM channel and set parameters
  15. *
  16. * @param[in] channel PWM channel (FuriHalPwmOutputId)
  17. * @param[in] freq Frequency in Hz
  18. * @param[in] duty Duty cycle value in %
  19. */
  20. void furi_hal_pwm_start(FuriHalPwmOutputId channel, uint32_t freq, uint8_t duty);
  21. /** Disable PWM channel
  22. *
  23. * @param[in] channel PWM channel (FuriHalPwmOutputId)
  24. */
  25. void furi_hal_pwm_stop(FuriHalPwmOutputId channel);
  26. /** Set PWM channel parameters
  27. *
  28. * @param[in] channel PWM channel (FuriHalPwmOutputId)
  29. * @param[in] freq Frequency in Hz
  30. * @param[in] duty Duty cycle value in %
  31. */
  32. void furi_hal_pwm_set_params(FuriHalPwmOutputId channel, uint32_t freq, uint8_t duty);
  33. #ifdef __cplusplus
  34. }
  35. #endif