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

📄 qadc64_a.h

📁 摩托罗拉MMC2107在ucosII的移植代码
💻 H
📖 第 1 页 / 共 3 页
字号:

} 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 + -