K74B/app_Indie/drivers/hal/inc/pwm_aux_device.h
2024-01-16 10:46:17 +08:00

45 lines
1020 B
C

#ifndef PWM_AUX_DEVICE_H__
#define PWM_AUX_DEVICE_H__
#include <stdint.h>
#include <stdbool.h>
#include <meta.h>
#include <gpio_device.h>
typedef void (*PwmAuxIsrCallback_t)(void);
typedef enum{
PWMAUX_CH0 = 0U,
PWMAUX_CH1 = 1U,
PWMAUX_CH2 = 2U,
PWMAUX_CH3 = 3U,
PWMAUX_CH4 = 4U,
PWMAUX_CH5 = 5U,
}PWMAUX_CH_t;
typedef enum{
PWMAUX_BASE_0 = 0U,
PWMAUX_BASE_1,
}PWMAUX_ClockSource_t;
typedef enum{
PWMAUX_CLK_DIV_1 = 0U,
PWMAUX_CLK_DIV_2,
PWMAUX_CLK_DIV_4,
PWMAUX_CLK_DIV_8,
PWMAUX_CLK_DIV_16,
PWMAUX_CLK_DIV_64,
PWMAUX_CLK_DIV_256,
PWMAUX_CLK_DIV_1024,
}PWMAUX_Prescaler_t;
void PWMAUX_Init(GpioGroup_t group,GpioPort_t port,PWMAUX_CH_t channel,PWMAUX_ClockSource_t source,PWMAUX_Prescaler_t divider,uint16_t peroid);
void PWMAUX_RegisterReloadIRQ(PWMAUX_ClockSource_t source, PwmAuxIsrCallback_t callback);
void PWMAUX_UnRegisterReloadIRQ(PWMAUX_ClockSource_t source);
void PWMAUX_SetMatchValue(PWMAUX_CH_t channel, uint16_t matchRisingValue, uint16_t matchFaillValue);
#endif