⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itcn_b.h

📁 摩托罗拉MMC2107在ucosII的移植代码
💻 H
📖 第 1 页 / 共 5 页
字号:
/*   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 + -