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

📄 gpio.h

📁 MC56F802BLDC 可以使用的算法 就是电机启动有点慢
💻 H
字号:
/******************************************************************************
*
* Motorola Inc.
* (c) Copyright 2001 Motorola, Inc.
* ALL RIGHTS RESERVED.
*
*******************************************************************************
*
* FILE NAME: gpio.h
*
* DESCRIPTION: Header file for GPIO driver
*
* MODULES INCLUDED: none
*
* NOTES:
*
*******************************************************************************/

#ifndef __GPIO_H
#define __GPIO_H

/************************************************************
* GPIO module identifiers, correspond to module base address
*************************************************************/

#define GPIO_A	(&ArchIO.PortA)
#define GPIO_B	(&ArchIO.PortB)
#define GPIO_D	(&ArchIO.PortD)
#define GPIO_E	(&ArchIO.PortE)

/****************************************************
* Configurable items, i.e. defines, for appconfig.h
*****************************************************

  void gpioxISR( void );               prototype for user ISR 
  #define INTERRUPT_VECTOR_ADDR_yy    gpioxISR
  #define ITCN_INTERRUPT_PRIORITY_yy  value 0-7 (0 = interrupt disabled)


  #define  GPIO_x_PULLUP_ENABLE_REG        0x0000
  #define  GPIO_x_DATA_DIRECTION_REG       0x0000
  #define  GPIO_x_PERIPHERAL_ENABLE_REG    0x0000
  #define  GPIO_x_INTERRUPT_ENABLE_REG     0x0000
  #define  GPIO_x_INTERRUPT_POLARITY_REG   0x0000

  where:
         x  is GPIO module (A, B, D or E)
         yy  is interrupt vector number
                23 - GPIO A
                22 - GPIO B
                20 - GPIO D
                19 - GPIO E
*/

/*****************************************************************
* ioctl() commands
*
*  Word16 ioctl( PWM_module_identifier, Command_name, Parameter );
*
******************************************************************

 COMMAND NAME                      PARAMETERS, COMMENTS
--------------------------------------------------------*/

#define GPIO_INIT                             /* NULL */ 
#define GPIO_SETAS_GPIO                       /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_SETAS_PERIPHERAL                 /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_SETAS_INPUT                      /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_SETAS_OUTPUT                     /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_INT_DISABLE                      /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_INT_ENABLE                       /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_PULLUP_DISABLE                   /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_PULLUP_ENABLE                    /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_INT_ASSERT_DISABLE               /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_INT_ASSERT_ENABLE                /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_INT_DETECTION_ACTIVE_HIGH        /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_INT_DETECTION_ACTIVE_LOW         /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_CLEAR_EDGE_SENSITIVE_INT_FLAG    /* NULL */
#define GPIO_SET_PIN                          /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_CLEAR_PIN                        /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_TOGGLE_PIN                       /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_READ_DATA                        /* NULL */
#define GPIO_WRITE_DATA                       /* BIT_0 | BIT_1 | BIT_2 | BIT_3 | BIT_4 | BIT_5 | BIT_6 | BIT_7 */
#define GPIO_READ_INT_PENDING_REG             /* NULL */

/****************************************************************************
* GPIO constants used in the ioctl functions
*****************************************************************************/
#define BIT_0	0x0001
#define BIT_1	0x0002
#define BIT_2	0x0004
#define BIT_3	0x0008
#define BIT_4	0x0010
#define BIT_5	0x0020
#define BIT_6	0x0040
#define BIT_7	0x0080

/***********************************************************************
*
* GPIO Init
*
***********************************************************************/

#define ioctlGPIO_INIT(pGpioBase, param) gpioInit((arch_sPort *)pGpioBase)
			
void gpioInit(arch_sPort *pGpioBase);  /* function prototype - implemented in gpio.c */

/***********************************************************************
*
* GPIO Peripheral Enable Register
*
***********************************************************************/

#define ioctlGPIO_SETAS_GPIO(pGpioBase, param)		\
			periphBitClear (param,(UWord16 *)(&((arch_sPort*)pGpioBase)->PeripheralReg))
						
#define ioctlGPIO_SETAS_PERIPHERAL(pGpioBase, param)     \
			periphBitSet   (param,(UWord16 *)(&((arch_sPort*)pGpioBase)->PeripheralReg))

/***********************************************************************
*
* GPIO Data Direction Register
*
***********************************************************************/

#define ioctlGPIO_SETAS_INPUT(pGpioBase, param)	\
			periphBitClear   (param, (UWord16 *)(&((arch_sPort*)pGpioBase)->DataDirectionReg))

#define ioctlGPIO_SETAS_OUTPUT(pGpioBase, param)	\
			periphBitSet   (param, (UWord16 *)(&((arch_sPort*)pGpioBase)->DataDirectionReg))

/***********************************************************************
*
* GPIO Data Register
*
***********************************************************************/

#define ioctlGPIO_SET_PIN(pGpioBase, param)				\
			periphBitSet(param, (UWord16 *)(&((arch_sPort*)pGpioBase)->DataReg))

#define ioctlGPIO_CLEAR_PIN(pGpioBase, param)			\
			periphBitClear (param, (UWord16 *)(&((arch_sPort*)pGpioBase)->DataReg))

#define ioctlGPIO_TOGGLE_PIN(pGpioBase, param)			\
			periphBitChange (param, (UWord16 *)(&((arch_sPort*)pGpioBase)->DataReg))

#define ioctlGPIO_READ_DATA(pGpioBase, param)     \
			periphMemRead((UWord16 *)(&((arch_sPort*)pGpioBase)->DataReg))

#define ioctlGPIO_WRITE_DATA(pGpioBase, param)     \
			periphMemWrite(param, (UWord16 *)(&((arch_sPort*)pGpioBase)->DataReg))

/***********************************************************************
*
* GPIO Pull-Up Enable Register
*
***********************************************************************/

#define ioctlGPIO_PULLUP_DISABLE(pGpioBase, param)			\
			periphBitClear (param, (UWord16 *)(&((arch_sPort*)pGpioBase)->PullUpReg))

#define ioctlGPIO_PULLUP_ENABLE(pGpioBase, param)        \
			periphBitSet   (param, (UWord16 *)(&((arch_sPort*)pGpioBase)->PullUpReg))

/***********************************************************************
*
* GPIO Interrupt Assert Register
*
***********************************************************************/

#define ioctlGPIO_INT_ASSERT_DISABLE(pGpioBase, param)     \
			periphBitClear(param, (UWord16 *)(&((arch_sPort*)pGpioBase)->IntAssertReg))

#define ioctlGPIO_INT_ASSERT_ENABLE(pGpioBase, param)     \
			periphBitSet   (param, (UWord16 *)(&((arch_sPort*)pGpioBase)->IntAssertReg))

/***********************************************************************
*
* GPIO Interrupt Enable Register
*
***********************************************************************/

#define ioctlGPIO_INT_DISABLE(pGpioBase, param)    \
			periphBitClear(param, (UWord16 *)(&((arch_sPort*)pGpioBase)->IntEnableReg)) 

#define ioctlGPIO_INT_ENABLE(pGpioBase, param)     \
			periphBitSet   (param, (UWord16 *)(&((arch_sPort*)pGpioBase)->IntEnableReg))

/***********************************************************************
*
* GPIO Interrupt Polarity Register
*
***********************************************************************/

#define ioctlGPIO_INT_DETECTION_ACTIVE_HIGH(pGpioBase, param)    \
			periphBitClear(param, (UWord16 *)(&((arch_sPort*)pGpioBase)->IntPolarityReg))

#define ioctlGPIO_INT_DETECTION_ACTIVE_LOW(pGpioBase, param)     \
			periphBitSet   (param, (UWord16 *)(&((arch_sPort*)pGpioBase)->IntPolarityReg))

/***********************************************************************
*
* GPIO Interrupt Edge Sensitive Register
*
***********************************************************************/

#define ioctlGPIO_CLEAR_EDGE_SENSITIVE_INT_FLAG(pGpioBase, param)     \
			periphMemWrite(0x0000, (UWord16 *)(&((arch_sPort*)pGpioBase)->IntEdgeSensReg))

/***********************************************************************
*
* GPIO Interrupt Pending Register
*
***********************************************************************/

#define ioctlGPIO_READ_INT_PENDING_REG(pGpioBase, param)     \
			periphMemRead((UWord16 *)(&((arch_sPort*)pGpioBase)->IntPendingReg))


/**********************************************************************
*
* Include of device specific GPIO commands and defines
*
***********************************************************************/

#include "gpiotarget.h"  /* device specific defines */


#endif										

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -