📄 csl_timerhal.h
字号:
#define TIMER_CTL_INVOUT_OF(x) _VALUEOF(x) #define TIMER_CTL_INVOUT_NO 0x00000000u #define TIMER_CTL_INVOUT_YES 0x00000001u #define _TIMER_CTL_FUNC_MASK 0x00000001u #define _TIMER_CTL_FUNC_SHIFT 0x00000000u #define TIMER_CTL_FUNC_DEFAULT 0x00000000u #define TIMER_CTL_FUNC_OF(x) _VALUEOF(x) #define TIMER_CTL_FUNC_GPIO 0x00000000u #define TIMER_CTL_FUNC_TOUT 0x00000001u #define TIMER_CTL_OF(x) _VALUEOF(x) #if (C64_SUPPORT) #define TIMER_CTL_DEFAULT (Uint32)( \ _PER_FDEFAULT(TIMER,CTL,SPND) \ |_PER_FDEFAULT(TIMER,CTL,TSTAT) \ |_PER_FDEFAULT(TIMER,CTL,INVINP) \ |_PER_FDEFAULT(TIMER,CTL,CLKSRC) \ |_PER_FDEFAULT(TIMER,CTL,CP) \ |_PER_FDEFAULT(TIMER,CTL,HLD) \ |_PER_FDEFAULT(TIMER,CTL,GO) \ |_PER_FDEFAULT(TIMER,CTL,PWID) \ |_PER_FDEFAULT(TIMER,CTL,DATIN) \ |_PER_FDEFAULT(TIMER,CTL,DATOUT) \ |_PER_FDEFAULT(TIMER,CTL,INVOUT) \ |_PER_FDEFAULT(TIMER,CTL,FUNC) \ ) #else #define TIMER_CTL_DEFAULT (Uint32)( \ _PER_FDEFAULT(TIMER,CTL,TSTAT) \ |_PER_FDEFAULT(TIMER,CTL,INVINP) \ |_PER_FDEFAULT(TIMER,CTL,CLKSRC) \ |_PER_FDEFAULT(TIMER,CTL,CP) \ |_PER_FDEFAULT(TIMER,CTL,HLD) \ |_PER_FDEFAULT(TIMER,CTL,GO) \ |_PER_FDEFAULT(TIMER,CTL,PWID) \ |_PER_FDEFAULT(TIMER,CTL,DATIN) \ |_PER_FDEFAULT(TIMER,CTL,DATOUT) \ |_PER_FDEFAULT(TIMER,CTL,INVOUT) \ |_PER_FDEFAULT(TIMER,CTL,FUNC) \ ) #endif #if (C64_SUPPORT) #define TIMER_CTL_RMK(spnd,invinp,clksrc,cp,hld,go,pwid,datout,invout,func) \ (Uint32)( \ _PER_FMK(TIMER,CTL,SPND,spnd) \ |_PER_FMK(TIMER,CTL,INVINP,invinp) \ |_PER_FMK(TIMER,CTL,CLKSRC,clksrc) \ |_PER_FMK(TIMER,CTL,CP,cp) \ |_PER_FMK(TIMER,CTL,HLD,hld) \ |_PER_FMK(TIMER,CTL,GO,go) \ |_PER_FMK(TIMER,CTL,PWID,pwid) \ |_PER_FMK(TIMER,CTL,DATOUT,datout) \ |_PER_FMK(TIMER,CTL,INVOUT,invout) \ |_PER_FMK(TIMER,CTL,FUNC,func) \ ) #else #define TIMER_CTL_RMK(invinp,clksrc,cp,hld,go,pwid,datout,invout,func) \ (Uint32)( \ _PER_FMK(TIMER,CTL,INVINP,invinp) \ |_PER_FMK(TIMER,CTL,CLKSRC,clksrc) \ |_PER_FMK(TIMER,CTL,CP,cp) \ |_PER_FMK(TIMER,CTL,HLD,hld) \ |_PER_FMK(TIMER,CTL,GO,go) \ |_PER_FMK(TIMER,CTL,PWID,pwid) \ |_PER_FMK(TIMER,CTL,DATOUT,datout) \ |_PER_FMK(TIMER,CTL,INVOUT,invout) \ |_PER_FMK(TIMER,CTL,FUNC,func) \ ) #endif #define _TIMER_CTL_FGET(N,FIELD)\ _PER_FGET(_TIMER_CTL##N##_ADDR,TIMER,CTL,##FIELD) #define _TIMER_CTL_FSET(N,FIELD,f)\ _PER_FSET(_TIMER_CTL##N##_ADDR,TIMER,CTL,##FIELD,f) #define _TIMER_CTL_FSETS(N,FIELD,SYM)\ _PER_FSETS(_TIMER_CTL##N##_ADDR,TIMER,CTL,##FIELD,##SYM) #define _TIMER_CTL0_FGET(FIELD) _TIMER_CTL_FGET(0,##FIELD) #define _TIMER_CTL1_FGET(FIELD) _TIMER_CTL_FGET(1,##FIELD) #if TIMER_DEVICE_CNT == 3 #define _TIMER_CTL2_FGET(FIELD) _TIMER_CTL_FGET(2,##FIELD) #endif #define _TIMER_CTL0_FSET(FIELD,f) _TIMER_CTL_FSET(0,##FIELD,f) #define _TIMER_CTL1_FSET(FIELD,f) _TIMER_CTL_FSET(1,##FIELD,f) #if TIMER_DEVICE_CNT == 3 #define _TIMER_CTL2_FSET(FIELD,f) _TIMER_CTL_FSET(2,##FIELD,f) #endif #define _TIMER_CTL0_FSETS(FIELD,SYM) _TIMER_CTL_FSETS(0,##FIELD,##SYM) #define _TIMER_CTL1_FSETS(FIELD,SYM) _TIMER_CTL_FSETS(1,##FIELD,##SYM) #if TIMER_DEVICE_CNT == 3 #define _TIMER_CTL2_FSETS(FIELD,SYM) _TIMER_CTL_FSETS(2,##FIELD,##SYM) #endif/******************************************************************************\* _____________________* | |* | P R D |* |___________________|** PRD0 - timer period register 0* PRD1 - timer period register 1* PRD2 - timer period register 2 (1)** (1) - only supported on C64x devices** FIELDS (msb -> lsb)* (rw) PRD*\******************************************************************************/ #define _TIMER_PRD_OFFSET 1 #define _TIMER_PRD0_ADDR 0x01940004u #define _TIMER_PRD1_ADDR 0x01980004u #if TIMER_DEVICE_CNT == 3 #define _TIMER_PRD2_ADDR 0x01AC0004u #endif #define _TIMER_PRD_PRD_MASK 0xFFFFFFFFu #define _TIMER_PRD_PRD_SHIFT 0x00000000u #define TIMER_PRD_PRD_DEFAULT 0x00000000u #define TIMER_PRD_PRD_OF(x) _VALUEOF(x) #define TIMER_PRD_OF(x) _VALUEOF(x) #define TIMER_PRD_DEFAULT (Uint32)( \ _PER_FDEFAULT(TIMER,PRD,PRD) \ ) #define TIMER_PRD_RMK(prd) (Uint32)( \ _PER_FMK(TIMER,PRD,PRD,prd) \ ) #define _TIMER_PRD_FGET(N,FIELD)\ _PER_FGET(_TIMER_PRD##N##_ADDR,TIMER,PRD,##FIELD) #define _TIMER_PRD_FSET(N,FIELD,f)\ _PER_FSET(_TIMER_PRD##N##_ADDR,TIMER,PRD,##FIELD,f) #define _TIMER_PRD_FSETS(N,FIELD,SYM)\ _PER_FSETS(_TIMER_PRD##N##_ADDR,TIMER,PRD,##FIELD,##SYM) #define _TIMER_PRD0_FGET(FIELD) _TIMER_PRD_FGET(0,##FIELD) #define _TIMER_PRD1_FGET(FIELD) _TIMER_PRD_FGET(1,##FIELD) #if TIMER_DEVICE_CNT == 3 #define _TIMER_PRD2_FGET(FIELD) _TIMER_PRD_FGET(2,##FIELD) #endif #define _TIMER_PRD0_FSET(FIELD,f) _TIMER_PRD_FSET(0,##FIELD,f) #define _TIMER_PRD1_FSET(FIELD,f) _TIMER_PRD_FSET(1,##FIELD,f) #if TIMER_DEVICE_CNT == 3 #define _TIMER_PRD2_FSET(FIELD,f) _TIMER_PRD_FSET(2,##FIELD,f) #endif #define _TIMER_PRD0_FSETS(FIELD,SYM) _TIMER_PRD_FSETS(0,##FIELD,##SYM) #define _TIMER_PRD1_FSETS(FIELD,SYM) _TIMER_PRD_FSETS(1,##FIELD,##SYM) #if TIMER_DEVICE_CNT == 3 #define _TIMER_PRD2_FSETS(FIELD,SYM) _TIMER_PRD_FSETS(2,##FIELD,##SYM) #endif/******************************************************************************\* _____________________* | |* | C N T |* |___________________|** CNT0 - timer count register 0* CNT1 - timer count register 1* CNT2 - timer count register 2 (1)** (1) - only supported on C64x devices** FIELDS (msb -> lsb)* (rw) CNT*\******************************************************************************/ #define _TIMER_CNT_OFFSET 2 #define _TIMER_CNT0_ADDR 0x01940008u #define _TIMER_CNT1_ADDR 0x01980008u #if TIMER_DEVICE_CNT == 3 #define _TIMER_CNT2_ADDR 0x01AC0008u #endif #define _TIMER_CNT_CNT_MASK 0xFFFFFFFFu #define _TIMER_CNT_CNT_MASK 0xFFFFFFFFu #define _TIMER_CNT_CNT_SHIFT 0x00000000u #define TIMER_CNT_CNT_DEFAULT 0x00000000u #define TIMER_CNT_CNT_OF(x) _VALUEOF(x) #define TIMER_CNT_OF(x) _VALUEOF(x) #define TIMER_CNT_DEFAULT (Uint32)( \ _PER_FDEFAULT(TIMER,CNT,CNT) \ ) #define TIMER_CNT_RMK(cnt) (Uint32)( \ _PER_FMK(TIMER,CNT,CNT,cnt) \ ) #define _TIMER_CNT_FGET(N,FIELD)\ _PER_FGET(_TIMER_CNT##N##_ADDR,TIMER,CNT,##FIELD) #define _TIMER_CNT_FSET(N,FIELD,f)\ _PER_FSET(_TIMER_CNT##N##_ADDR,TIMER,CNT,##FIELD,f) #define _TIMER_CNT_FSETS(N,FIELD,SYM)\ _PER_FSETS(_TIMER_CNT##N##_ADDR,TIMER,CNT,##FIELD,##SYM) #define _TIMER_CNT0_FGET(FIELD) _TIMER_CNT_FGET(0,##FIELD) #define _TIMER_CNT1_FGET(FIELD) _TIMER_CNT_FGET(1,##FIELD) #if TIMER_DEVICE_CNT == 3 #define _TIMER_CNT2_FGET(FIELD) _TIMER_CNT_FGET(2,##FIELD) #endif #define _TIMER_CNT0_FSET(FIELD,f) _TIMER_CNT_FSET(0,##FIELD,f) #define _TIMER_CNT1_FSET(FIELD,f) _TIMER_CNT_FSET(1,##FIELD,f) #if TIMER_DEVICE_CNT == 3 #define _TIMER_CNT2_FSET(FIELD,f) _TIMER_CNT_FSET(2,##FIELD,f) #endif #define _TIMER_CNT0_FSETS(FIELD,SYM) _TIMER_CNT_FSETS(0,##FIELD,##SYM) #define _TIMER_CNT1_FSETS(FIELD,SYM) _TIMER_CNT_FSETS(1,##FIELD,##SYM) #if TIMER_DEVICE_CNT == 3 #define _TIMER_CNT2_FSETS(FIELD,SYM) _TIMER_CNT_FSETS(2,##FIELD,##SYM) #endif/*----------------------------------------------------------------------------*/#endif /* (TIMER_SUPPORT) */#endif /* _CSL_TIMERHAL_H_ *//******************************************************************************\* End of csl_timerhal.h\******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -