Skip to content

File syn_hrpwm.h

File List > drivers > syn_hrpwm.h

Go to the documentation of this file

#ifndef SYN_HRPWM_H
#define SYN_HRPWM_H

#include "../common/syn_defs.h"
#include "../port/syn_port_hrpwm.h"

#include <stdbool.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct {
    uint8_t channel;    
    uint32_t freq_hz;   
    uint16_t rise_ns;   
    uint16_t fall_ns;   
    uint16_t phase_deg; 
    bool enabled;       
} SYN_HRPWM;

SYN_Status syn_hrpwm_init(SYN_HRPWM *hrpwm, uint8_t channel, uint32_t freq_hz);

SYN_Status syn_hrpwm_set_duty_q16(const SYN_HRPWM *hrpwm, int32_t duty_q16);

SYN_Status syn_hrpwm_set_duty_float(const SYN_HRPWM *hrpwm, float duty_float);

SYN_Status syn_hrpwm_set_deadtime_ns(SYN_HRPWM *hrpwm, uint16_t rise_ns, uint16_t fall_ns);

SYN_Status syn_hrpwm_set_phase_deg(SYN_HRPWM *hrpwm, uint16_t phase_deg);

SYN_Status syn_hrpwm_bind_fault(const SYN_HRPWM *hrpwm, uint8_t fault_id);

SYN_Status syn_hrpwm_enable(SYN_HRPWM *hrpwm, bool enable);

#ifdef __cplusplus
}
#endif

#endif /* SYN_HRPWM_H */