#ifndef _API_RT_PWM_H_ #define _API_RT_PWM_H_ #include #include "api_pwm.h" #include "api_rt_common.h" #include "gd32f30x.h" typedef struct { uint32_t PwmBase; uint16_t CompareValues[6]; uint16_t ActiveCompareValues[6]; ApiRt_Interrupt CountZeroISR; ApiRt_Interrupt CountMaxISR; ApiRt_Interrupt BreakISR; ApiRt_Interrupt ChannelISR[4]; int8_t OutputEnable; #if API_FUNCTION_PWM_SYNC_MULTI_SAMPLING int8_t SyncSamplingEnable; int8_t SyncSamplingUpTickCount; uint16_t SyncSamplingUpTick[4]; int8_t SyncSamplingDownTickCount; uint16_t SyncSamplingDownTick[4]; #endif } ApiRtPwm_Handle; extern ApiRtPwm_Handle Pwms[1]; void iRtPwm_Init(); void iRtPwm_ActivateCompareValues(uint8_t devIndex); void iRtPwm_UpdateIsr(uint8_t devIndex); void iRtPwm_CountZeroIsr(uint8_t devIndex); void iRtPwm_CountMaxIsr(uint8_t devIndex); void iRtPwm_SyncSamplingAdcIsr(uint8_t devIndex); #endif