📄 qadc64_a.h
字号:
} QADC64_A_Boolean_t;
/*--------------------------------------------------------------------*/
/* These macros should be used with: */
/* QADC64_A_Init, QADC64_A_KeyControl */
/* and QADC64_A_KeyColumnScan. */
/*--------------------------------------------------------------------*/
/* These macros can be used to create the ColumnMask,*/
/* RowMask, and Column paramters since they fit into */
/* seperate 8-bit objects. */
/*--------------------------------------------------------------------*/
/* These macros should be used with: */
/* QADC64_A_SetRegister and QADC64_A_GetRegister */
/*--------------------------------------------------------------------*/
/* These macros can be used with KPDR, KPCR, or KDDR */
/* since they fit into a 16-bit object. */
/*--------------------------------------------------------------------*/
/* QADC Register Selection Switch */
/*--------------------------------------------------------------------*/
typedef enum {
QADC64_A_QADCMCR_SWITCH, /* Select QADMCR */
QADC64_A_QADCINT_SWITCH, /* Select QADCINT */
QADC64_A_PORTQA_SWITCH, /* Select PORTQA */
QADC64_A_PORTQB_SWITCH, /* Select PORTQB */
QADC64_A_DDRQA_SWITCH, /* Select DDRQA */
QADC64_A_QACR0_SWITCH, /* Select QACR0 */
QADC64_A_QACR1_SWITCH, /* Select QACR1 */
QADC64_A_QACR2_SWITCH, /* Select QACR2 */
QADC64_A_QASR0_SWITCH, /* Select QASR0 */
QADC64_A_QASR1_SWITCH /* Select QASR1 */
} QADC64_A_RegisterSwitch_t;
/*--------------------------------------------------------------------*/
/* QADC64 Register Definitions */
/*--------------------------------------------------------------------*/
#define RESULT_WORD_TABLE_SIZE 64 /* Size of Result Word Tables */
#define CCW_ARRAY_SIZE (MAXIMUM_CCW + 1) /* Size of CCW Array */
typedef struct
{
UINT16 QADCMCR; /* Module Configuration Register */
UINT16 QADCTEST; /* Test Register */
UINT16 QADCINT; /* Interrupt Register */
volatile UINT8 PORTQA; /* Port A Data */
volatile UINT8 PORTQB; /* Port B Data */
UINT16 DDRQA; /* Port Data Direction Register */
UINT16 QACR0; /* Control Register 0 */
volatile UINT16 QACR1; /* Control Register 1 */
volatile UINT16 QACR2; /* Control Register 2 */
volatile UINT16 QASR0; /* Status Register 0 */
volatile UINT16 QASR1; /* Status Register 1 */
UINT16 RESERVED[246]; /* RESERVED $014-1FE */
UINT16 CCW[CCW_ARRAY_SIZE]; /* Conversion Command Word Table */
volatile UINT16 RJURR[RESULT_WORD_TABLE_SIZE]; /* Result Word Table, Right Justified, */
/* Unsigned Result Register */
volatile UINT16 LJSRR[RESULT_WORD_TABLE_SIZE]; /* Result Word Table, Left Justified, */
/* Signed Result Register */
volatile UINT16 LJURR[RESULT_WORD_TABLE_SIZE]; /* Result Word Table, Left Justified, */
/* Unsigned Result Register */
} QADC64_A_t, *pQADC64_A_t;
typedef enum
{ /* Trigger/Queue Assignment */
ETRIG1_QUEUE1, /* ETRIG1/Queue1, ETRIG2/Queue2 Assignment */
ETRIG1_QUEUE2 /* ETRIG1/Queue2, ETRIG2/Queue1 Assignment */
} QADC64_A_TriggerAssignment_t;
typedef struct
{
QADC64_A_Boolean_t CompletionFlag; /* QASR0-CFx */
QADC64_A_Boolean_t PauseFlag; /* QASR0-PFx */
QADC64_A_Boolean_t TriggerOverrunFlag;/* QASR0-TORx */
UINT8 QueueStatus; /* QASR0-QS field */
UINT8 CommandWordPointer; /* QASR0-CWP */
UINT8 QueueCWP; /* QASR1-CWPQx */
} QADC64_A_Status_t, *pQADC64_A_Status_t;
typedef enum
{ /* Result Word Data Format selections */
QADC64_A_RJURR_DATA_FORMAT,/* Right Justified,Unsigned Result Register*/
QADC64_A_LJSRR_DATA_FORMAT,/* Left Justified, Signed Result Register */
QADC64_A_LJURR_DATA_FORMAT /* Left Justified,Unsigned Result Register */
} QADC64_A_DataFormat_t;
/*--------------------------------------------------------------------*/
/* Prototypes */
/*--------------------------------------------------------------------*/
QADC64_A_ReturnCode_t QADC64_A_SetRegister_f (
pQADC64_A_t,
QADC64_A_RegisterSwitch_t,
UINT16
);
QADC64_A_ReturnCode_t QADC64_A_GetRegister_f (
pQADC64_A_t,
QADC64_A_RegisterSwitch_t,
UINT16 *
);
QADC64_A_ReturnCode_t QADC64_A_Init_f (
pQADC64_A_t,
QADC64_A_Boolean_t,
QADC64_A_Boolean_t,
QADC64_A_Boolean_t,
UINT8,
UINT8,
QADC64_A_Boolean_t,
QADC64_A_TriggerAssignment_t,
UINT8,
UINT8
);
QADC64_A_ReturnCode_t QADC64_A_QueueInit_f (
pQADC64_A_t,
QADC64_A_Boolean_t,
QADC64_A_Boolean_t,
QADC64_A_Boolean_t,
QADC64_A_Boolean_t,
UINT8
);
QADC64_A_ReturnCode_t QADC64_A_SetCCW_f (
pQADC64_A_t,
UINT8,
QADC64_A_Boolean_t,
UINT8,
UINT8
);
QADC64_A_ReturnCode_t QADC64_A_GetStatus_f (
pQADC64_A_t,
QADC64_A_Boolean_t,
pQADC64_A_Status_t
);
QADC64_A_ReturnCode_t QADC64_A_ControlEnable_f (
pQADC64_A_t,
QADC64_A_Boolean_t,
QADC64_A_Boolean_t,
UINT8
);
QADC64_A_ReturnCode_t QADC64_A_ResetStatus_f (
pQADC64_A_t,
UINT16
);
QADC64_A_ReturnCode_t QADC64_A_GetResultWord_f (
pQADC64_A_t,
UINT8,
QADC64_A_DataFormat_t,
UINT16 *
);
QADC64_A_ReturnCode_t QADC64_A_SetPin_f (
pQADC64_A_t,
UINT16,
QADC64_A_Boolean_t
);
QADC64_A_ReturnCode_t QADC64_A_GetPin_f (
pQADC64_A_t,
UINT16,
QADC64_A_Boolean_t *
);
/*--------------------------------------------------------------------*/
/* Macros */
/*--------------------------------------------------------------------*/
/* QADC64_A_SetRegister - Set a QADC Register */
#define QADC64_A_SetRegister(QADCPtr, Switch, RegValue) \
( \
(QADC64_A_PARAM_CHECKING)? \
( \
((QADCPtr) == NULL)? QADC64_A_ERR_INVALID_HANDLE: \
((Switch) > QADC64_A_QASR0_SWITCH ) ? QADC64_A_ERR_INVALID_REGISTER:\
((((Switch) == QADC64_A_PORTQA_SWITCH) || \
((Switch) == QADC64_A_PORTQB_SWITCH) \
) && ((RegValue) > 0xff) \
) ? QADC64_A_ERR_INVALID_DATA_VALUE: \
QADC64_A_SetRegister_f(QADCPtr, Switch, RegValue) \
) \
: \
( \
QADC64_A_SetRegister_f(QADCPtr, Switch, RegValue) \
) \
)
/* QADC64_A_GetRegister - Get a QADC Register */
#define QADC64_A_GetRegister(QADCPtr, Switch, RegPtr) \
( \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -