📄 xspwmdrv.h
字号:
#ifndef __XSPWM_DRV_H
#define __XSPWM_DRV_H
#include "XsPwmRegs.h"
//read/write period value
#define PWM_READ_PERVAL(chan) \
GET_FIELD(PWM_PERVAL_ADDR(chan), PWM_PERVAL_PV_OFS, PWM_PERVAL_PV_OFS)
#define PWM_WRITE_PERVAL(chan, val)\
LOAD_FIELD(PWM_PERVAL_ADDR(chan), val, PWM_PERVAL_PV_OFS, PWM_PERVAL_PV_OFS)
//read/write duty cycle
#define PWM_READ_DUTY(chan) \
GET_FIELD(PWM_DUTY_ADDR(chan), PWM_DUTY_DCYCLE_OFS, PWM_DUTY_DCYCLE_SZ)
#define PWM_WRITE_DUTY(chan, val) \
LOAD_FIELD(PWM_DUTY_ADDR(chan), val, PWM_DUTY_DCYCLE_OFS, PWM_DUTY_DCYCLE_SZ)
//set full duty cycle, no toggle
#define PWM_SET_DUTY_CLCLE_FULL(chan) \
SET_BIT(PWM_DUTY_ADDR(chan), PWM_DUTY_FDCYCLE_OFS)
//read/write prescale value
#define PWM_READ_PRESCALE(chan) \
GET_FIELD(PWM_CTRL_ADDR(chan), PWM_CTRL_PRESCALE_OFS, PWM_CTRL_PRESCALE_SZ)
#define PWM_WRITE_PRESCALE(chan, val) \
LOAD_FIELD(PWM_CTRL_ADDR(chan), val, PWM_CTRL_PRESCALE_OFS, PWM_CTRL_PRESCALE_SZ)
//set shut down mode, 1 for abrupt shutdown, 0 for gracefull shutdown
#define SHUTDOWN_GRACE 0
#define SHUTDOWN_ABRUPT 1
#define PWM_SET_SHUTDOWN(chan, val) \
ASSIGN_BIT_VAL(PWM_CTRL_ADDR(chan), PWM_CTRL_SD_OFS, val)
void XsPwmDrv_Init(volatile PwmCtrlRegsT* pPwm, PwmDeviceE Device);
#define XsPwmDrv_InitPWM0() \
XsPwmDrv_Init((volatile PwmCtrlRegsT*)PWM0REG_PHY_BASE_ADDR, PWM0);
#define XsPwmDrv_InitPWM1() \
XsPwmDrv_Init((volatile PwmCtrlRegsT*)PWM1REG_PHY_BASE_ADDR, PWM1);
#endif //__XSPWM_DRV_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -