📄 itcn_b.h
字号:
/* ITCN_B_ERR_INVALID_VECTOR_TYPE : invalid vector type */
/************************************************************************/
#define ITCN_B_SetInterruptServiceRoutine( ITCNPtr, \
priorityLevel, \
interruptType, \
ISRAddress, \
interruptSource, \
vectorType ) \
( \
(ITCN_B_PARAM_CHECKING) ? \
( \
((ITCNPtr) == NULL ) ? \
ITCN_B_ERR_INVALID_HANDLE : \
(((priorityLevel) < INTERRUPT_PRIORITY_LEVEL_MIN) || \
((priorityLevel) > INTERRUPT_PRIORITY_LEVEL_MAX)) ? \
ITCN_B_ERR_INVALID_PRIORITY_LEVEL : \
(((interruptType) < ITCN_B_INTERRUPT_NORMAL) || \
((interruptType) > ITCN_B_INTERRUPT_FAST)) ? \
ITCN_B_ERR_INVALID_INTERRUPT_TYPE : \
((ISRAddress) == NULL ) ? \
ITCN_B_ERR_INVALID_ISR_ADDRESS : \
(((interruptSource) < ITCN_B_ADC_PF1_SOURCE_0) || \
((interruptSource) > ITCN_B_EDGEPORT_EPF7_SOURCE_39)) ? \
ITCN_B_ERR_INVALID_INTERRUPT_SOURCE : \
(((vectorType) < ITCN_B_VECTORED_INTERRUPTS) || \
((vectorType) > ITCN_B_AUTOVECTORED_INTERRUPTS)) ? \
ITCN_B_ERR_INVALID_VECTOR_TYPE : \
ITCN_B_SetInterruptServiceRoutine_f( (ITCNPtr), \
(priorityLevel), \
(interruptType), \
(ISRAddress), \
(interruptSource), \
(vectorType) ) \
) \
: \
ITCN_B_SetInterruptServiceRoutine_f( (ITCNPtr), \
(priorityLevel), \
(interruptType), \
(ISRAddress), \
(interruptSource), \
(vectorType) ) \
) /* End of ITCN_B_SetInterruptServiceRoutine Macro */
/************************************************************************/
/* Macro: ITCN_B_ControlOperation */
/* */
/* Purpose: Call ITCN_B_ControlOperation_f function with optional */
/* parameter checking. */
/* */
/* Input: */
/* ITCNPtr : ITCN base address associated with this driver. */
/* priorityLevel : priority level to enable/disable */
/* interruptType : specify fast or normal interrupt */
/* interruptControl : interrupt enable/disable control selection */
/* */
/* Output: */
/* ITCN_B_ERR_NONE : No error */
/* ITCN_B_ERR_INVALID_HANDLE : ITCN base address parameter is zero */
/* ITCN_B_ERR_INVALID_PRIORITY_LEVEL : priority level is invalid */
/* ITCN_B_ERR_INVALID_INTERRUPT_TYPE : interrupt type is invalid */
/* ITCN_B_ERR_INVALID_INTERRUPT_CONTROL : interrupt control selection */
/* is invalid */
/************************************************************************/
#define ITCN_B_ControlOperation( ITCNPtr, \
priorityLevel, \
interruptType, \
interruptControl ) \
( \
(ITCN_B_PARAM_CHECKING) ? \
( \
((ITCNPtr) == NULL) ? \
ITCN_B_ERR_INVALID_HANDLE : \
(((priorityLevel) < INTERRUPT_PRIORITY_LEVEL_MIN) || \
((priorityLevel) > INTERRUPT_PRIORITY_LEVEL_MAX)) ? \
ITCN_B_ERR_INVALID_PRIORITY_LEVEL : \
(((interruptType) < ITCN_B_INTERRUPT_NORMAL) || \
((interruptType) > ITCN_B_INTERRUPT_FAST)) ? \
ITCN_B_ERR_INVALID_INTERRUPT_TYPE : \
(((interruptControl) < ITCN_B_INTERRUPT_DISABLE) || \
((interruptControl) > ITCN_B_INTERRUPT_ENABLE)) ? \
ITCN_B_ERR_INVALID_INTERRUPT_CONTROL : \
ITCN_B_ControlOperation_f( (ITCNPtr), \
(priorityLevel), \
(interruptType), \
(interruptControl) ) \
) \
: \
ITCN_B_ControlOperation_f( (ITCNPtr), \
(priorityLevel), \
(interruptType), \
(interruptControl) ) \
) /* End of ITCN_B_ControlOperation Macro */
/************************************************************************/
/* Macro: ITCN_B_ForceInterrupt */
/* */
/* Purpose: Call ITCN_B_ForceInterrupt_f function with optional */
/* parameter checking. */
/* */
/* Input: */
/* ITCNPtr : ITCN base address associated with this driver. */
/* interruptSource : specify interrupt source to force/clear */
/* forceControl : specify force or clear interrupt */
/* */
/* Output: */
/* ITCN_B_ERR_NONE : No error */
/* ITCN_B_ERR_INVALID_HANDLE : ITCN base address parameter is zero */
/* ITCN_B_ERR_INVALID_INTERRUPT_SOURCE : interrupt source is invalid */
/* ITCN_B_ERR_INVALID_FORCE_CONTROL : force control selection is */
/* invalid */
/************************************************************************/
#define ITCN_B_ForceInterrupt( ITCNPtr, \
interruptSource, \
forceControl ) \
( \
(ITCN_B_PARAM_CHECKING) ? \
( \
((ITCNPtr) == NULL) ? \
ITCN_B_ERR_INVALID_HANDLE : \
(((interruptSource) < ITCN_B_ADC_PF1_SOURCE_0) || \
((interruptSource) > ITCN_B_EDGEPORT_EPF7_SOURCE_39)) ? \
ITCN_B_ERR_INVALID_INTERRUPT_SOURCE : \
(((forceControl) < ITCN_B_CLEAR_INTERRUPT) || \
((forceControl) > ITCN_B_FORCE_INTERRUPT)) ? \
ITCN_B_ERR_INVALID_FORCE_CONTROL : \
ITCN_B_ForceInterrupt_f( (ITCNPtr), \
(interruptSource), \
(forceControl) ) \
) \
: \
ITCN_B_ForceInterrupt_f( (ITCNPtr), \
(interruptSource), \
(forceControl) ) \
) /* End of ITCN_B_ForceInterrupt Macro */
/************************************************************************/
/* Macro: ITCN_B_GetStatus */
/* */
/* Purpose: Call ITCN_B_GetStatus_f function with optional */
/* parameter checking. */
/* */
/* Input: */
/* ITCNPtr : ITCN base address associated with this driver. */
/* statusPtr : result address for status structure */
/* */
/* Output: */
/* ITCN_B_ERR_NONE : No error */
/* ITCN_B_ERR_INVALID_HANDLE : ITCN base address parameter is zero */
/* ITCN_B_ERR_BAD_RESULT_ADDR : Result Pointer is zero */
/************************************************************************/
#define ITCN_B_GetStatus( ITCNPtr, \
statusPtr ) \
( \
(ITCN_B_PARAM_CHECKING) ? \
( \
((ITCNPtr) == NULL) ? \
ITCN_B_ERR_INVALID_HANDLE : \
((statusPtr) == NULL) ? \
ITCN_B_ERR_BAD_RESULT_ADDR : \
ITCN_B_GetStatus_f( (ITCNPtr), \
(statusPtr) ) \
) \
: \
ITCN_B_GetStatus_f( (ITCNPtr), \
(statusPtr) ) \
) /* End of ITCN_B_GetStatus Macro */
/************************************************************************/
/* Macro: ITCN_B_GetRegister */
/* */
/* Purpose: Call ITCN_B_GetRegister_f function with optional */
/* parameter checking. */
/* */
/* Input: */
/* ITCNPtr : ITCN base address associated with this driver. */
/* registerSwitch : Select among ITCN_B registers. */
/* registerPtr : Result address for selected ITCN_B register. */
/* */
/* Output: */
/* ITCN_B_ERR_NONE : No error */
/* ITCN_B_ERR_INVALID_HANDLE : ITCN base address parameter is zero */
/* ITCN_B_ERR_BAD_RESULT_ADDR : Result Pointer is zero */
/* ITCN_B_ERR_INVALID_REGISTER : ITCN Register Selection switch is */
/* invalid */
/************************************************************************/
#define ITCN_B_GetRegister( ITCNPtr, \
registerSwitch, \
registerPtr ) \
( \
(ITCN_B_PARAM_CHECKING) ? \
( \
((ITCNPtr) == NULL) ? \
ITCN_B_ERR_INVALID_HANDLE : \
((registerPtr) == NULL) ? \
ITCN_B_ERR_BAD_RESULT_ADDR : \
(((registerSwitch) < ITCN_B_ICR) || \
((registerSwitch) > ITCN_B_PLSR39)) ? \
ITCN_B_ERR_INVALID_REGISTER : \
ITCN_B_GetRegister_f( (ITCNPtr), \
(registerSwitch), \
(registerPtr) ) \
) \
: \
ITCN_B_GetRegister_f( (ITCNPtr), \
(registerSwitch), \
(registerPtr) ) \
) /* End of ITCN_B_GetRegister Macro */
/************************************************************************/
/* Macro: ITCN_B_SetRegister */
/* */
/* Purpose: Call ITCN_B_SetRegister_f function with optional */
/* parameter checking. */
/* */
/* Input: */
/* ITCNPtr : ITCN base address associated with this driver. */
/* registerSwitch : Select among ITCN_B registers. */
/* registerVal : Data to copy into selected ITCN_B register. */
/* */
/* Output: */
/* ITCN_B_ERR_NONE : No error */
/* ITCN_B_ERR_INVALID_HANDLE : ITCN base address parameter is zero */
/* ITCN_B_ERR_INVALID_REGISTER : ITCN Register Selection switch is */
/* invalid */
/* ITCN_B_ERR_INVALID_REGISTER_VALUE : register value is invalid */
/************************************************************************/
#define ITCN_B_SetRegister( ITCNPtr, \
registerSwitch, \
registerVal ) \
( \
(ITCN_B_PARAM_CHECKING) ? \
( \
((ITCNPtr) == NULL) ? \
ITCN_B_ERR_INVALID_HANDLE : \
(((registerSwitch) != ITCN_B_ICR) && \
((registerSwitch) != ITCN_B_IFRH) && \
((registerSwitch) != ITCN_B_IFRL) && \
((registerSwitch) != ITCN_B_NIER) && \
((registerSwitch) != ITCN_B_FIER) && \
(((registerSwitch) < ITCN_B_PLSR0) || \
((registerSwitch) > ITCN_B_PLSR39))) ? \
ITCN_B_ERR_INVALID_REGISTER : \
(((registerSwitch) == ITCN_B_ICR) && \
(((registerVal) < REGISTER_16BIT_MIN) || \
((registerVal) > REGISTER_16BIT_MAX))) ? \
ITCN_B_ER
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -