178 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			178 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**********************************************************************
 | |
| * $Id$      lpc17xx_gpio.h              2010-06-18
 | |
| *//**
 | |
| * @file     lpc17xx_gpio.h
 | |
| * @brief    Contains all macro definitions and function prototypes
 | |
| *           support for GPDMA firmware library on LPC17xx
 | |
| * @version  3.0
 | |
| * @date     18. June. 2010
 | |
| * @author   NXP MCU SW Application Team
 | |
| *
 | |
| * Copyright(C) 2010, NXP Semiconductor
 | |
| * All rights reserved.
 | |
| *
 | |
| ***********************************************************************
 | |
| * Software that is described herein is for illustrative purposes only
 | |
| * which provides customers with programming information regarding the
 | |
| * products. This software is supplied "AS IS" without any warranties.
 | |
| * NXP Semiconductors assumes no responsibility or liability for the
 | |
| * use of the software, conveys no license or title under any patent,
 | |
| * copyright, or mask work right to the product. NXP Semiconductors
 | |
| * reserves the right to make changes in the software without
 | |
| * notification. NXP Semiconductors also make no representation or
 | |
| * warranty that such application will be suitable for the specified
 | |
| * use without further testing or modification.
 | |
| * Permission to use, copy, modify, and distribute this software and its
 | |
| * documentation is hereby granted, under NXP Semiconductors'
 | |
| * relevant copyright in the software, without fee, provided that it
 | |
| * is used in conjunction with NXP Semiconductors microcontrollers.  This
 | |
| * copyright, permission, and disclaimer notice must appear in all copies of
 | |
| * this code.
 | |
| **********************************************************************/
 | |
| 
 | |
| /* Peripheral group ----------------------------------------------------------- */
 | |
| /** @defgroup GPIO GPIO (General Purpose Input/Output)
 | |
|  * @ingroup LPC1700CMSIS_FwLib_Drivers
 | |
|  * @{
 | |
|  */
 | |
| 
 | |
| #ifndef LPC17XX_GPIO_H_
 | |
| #define LPC17XX_GPIO_H_
 | |
| 
 | |
| /* Includes ------------------------------------------------------------------- */
 | |
| #include "LPC17xx.h"
 | |
| #include "lpc_types.h"
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C"
 | |
| {
 | |
| #endif
 | |
| 
 | |
| /* Public Macros -------------------------------------------------------------- */
 | |
| /** @defgroup GPIO_Public_Macros GPIO Public Macros
 | |
|  * @{
 | |
|  */
 | |
| 
 | |
| /** Fast GPIO port 0 byte accessible definition */
 | |
| #define GPIO0_Byte  ((GPIO_Byte_TypeDef *)(LPC_GPIO0_BASE))
 | |
| /** Fast GPIO port 1 byte accessible definition */
 | |
| #define GPIO1_Byte  ((GPIO_Byte_TypeDef *)(LPC_GPIO1_BASE))
 | |
| /** Fast GPIO port 2 byte accessible definition */
 | |
| #define GPIO2_Byte  ((GPIO_Byte_TypeDef *)(LPC_GPIO2_BASE))
 | |
| /** Fast GPIO port 3 byte accessible definition */
 | |
| #define GPIO3_Byte  ((GPIO_Byte_TypeDef *)(LPC_GPIO3_BASE))
 | |
| /** Fast GPIO port 4 byte accessible definition */
 | |
| #define GPIO4_Byte  ((GPIO_Byte_TypeDef *)(LPC_GPIO4_BASE))
 | |
| 
 | |
| 
 | |
| /** Fast GPIO port 0 half-word accessible definition */
 | |
| #define GPIO0_HalfWord  ((GPIO_HalfWord_TypeDef *)(LPC_GPIO0_BASE))
 | |
| /** Fast GPIO port 1 half-word accessible definition */
 | |
| #define GPIO1_HalfWord  ((GPIO_HalfWord_TypeDef *)(LPC_GPIO1_BASE))
 | |
| /** Fast GPIO port 2 half-word accessible definition */
 | |
| #define GPIO2_HalfWord  ((GPIO_HalfWord_TypeDef *)(LPC_GPIO2_BASE))
 | |
| /** Fast GPIO port 3 half-word accessible definition */
 | |
| #define GPIO3_HalfWord  ((GPIO_HalfWord_TypeDef *)(LPC_GPIO3_BASE))
 | |
| /** Fast GPIO port 4 half-word accessible definition */
 | |
| #define GPIO4_HalfWord  ((GPIO_HalfWord_TypeDef *)(LPC_GPIO4_BASE))
 | |
| 
 | |
| /**
 | |
|  * @}
 | |
|  */
 | |
| 
 | |
| /* Public Types --------------------------------------------------------------- */
 | |
| /** @defgroup GPIO_Public_Types GPIO Public Types
 | |
|  * @{
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * @brief Fast GPIO port byte type definition
 | |
|  */
 | |
| typedef struct {
 | |
|     __IO uint8_t FIODIR[4];     /**< FIO direction register in byte-align */
 | |
|        uint32_t RESERVED0[3];   /**< Reserved */
 | |
|     __IO uint8_t FIOMASK[4];    /**< FIO mask register in byte-align */
 | |
|     __IO uint8_t FIOPIN[4];     /**< FIO pin register in byte align */
 | |
|     __IO uint8_t FIOSET[4];     /**< FIO set register in byte-align */
 | |
|     __O  uint8_t FIOCLR[4];     /**< FIO clear register in byte-align */
 | |
| } GPIO_Byte_TypeDef;
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * @brief Fast GPIO port half-word type definition
 | |
|  */
 | |
| typedef struct {
 | |
|     __IO uint16_t FIODIRL;      /**< FIO direction register lower halfword part */
 | |
|     __IO uint16_t FIODIRU;      /**< FIO direction register upper halfword part */
 | |
|        uint32_t RESERVED0[3];   /**< Reserved */
 | |
|     __IO uint16_t FIOMASKL;     /**< FIO mask register lower halfword part */
 | |
|     __IO uint16_t FIOMASKU;     /**< FIO mask register upper halfword part */
 | |
|     __IO uint16_t FIOPINL;      /**< FIO pin register lower halfword part */
 | |
|     __IO uint16_t FIOPINU;      /**< FIO pin register upper halfword part */
 | |
|     __IO uint16_t FIOSETL;      /**< FIO set register lower halfword part */
 | |
|     __IO uint16_t FIOSETU;      /**< FIO set register upper halfword part */
 | |
|     __O  uint16_t FIOCLRL;      /**< FIO clear register lower halfword part */
 | |
|     __O  uint16_t FIOCLRU;      /**< FIO clear register upper halfword part */
 | |
| } GPIO_HalfWord_TypeDef;
 | |
| 
 | |
| /**
 | |
|  * @}
 | |
|  */
 | |
| 
 | |
| 
 | |
| /* Public Functions ----------------------------------------------------------- */
 | |
| /** @defgroup GPIO_Public_Functions GPIO Public Functions
 | |
|  * @{
 | |
|  */
 | |
| 
 | |
| /* GPIO style ------------------------------- */
 | |
| void GPIO_SetDir(uint8_t portNum, uint32_t bitValue, uint8_t dir);
 | |
| void GPIO_SetValue(uint8_t portNum, uint32_t bitValue);
 | |
| void GPIO_ClearValue(uint8_t portNum, uint32_t bitValue);
 | |
| uint32_t GPIO_ReadValue(uint8_t portNum);
 | |
| void GPIO_IntCmd(uint8_t portNum, uint32_t bitValue, uint8_t edgeState);
 | |
| FunctionalState GPIO_GetIntStatus(uint8_t portNum, uint32_t pinNum, uint8_t edgeState);
 | |
| void GPIO_ClearInt(uint8_t portNum, uint32_t bitValue);
 | |
| 
 | |
| /* FIO (word-accessible) style ------------------------------- */
 | |
| void FIO_SetDir(uint8_t portNum, uint32_t bitValue, uint8_t dir);
 | |
| void FIO_SetValue(uint8_t portNum, uint32_t bitValue);
 | |
| void FIO_ClearValue(uint8_t portNum, uint32_t bitValue);
 | |
| uint32_t FIO_ReadValue(uint8_t portNum);
 | |
| void FIO_SetMask(uint8_t portNum, uint32_t bitValue, uint8_t maskValue);
 | |
| void FIO_IntCmd(uint8_t portNum, uint32_t bitValue, uint8_t edgeState);
 | |
| FunctionalState FIO_GetIntStatus(uint8_t portNum, uint32_t pinNum, uint8_t edgeState);
 | |
| void FIO_ClearInt(uint8_t portNum, uint32_t pinNum);
 | |
| 
 | |
| /* FIO (halfword-accessible) style ------------------------------- */
 | |
| void FIO_HalfWordSetDir(uint8_t portNum, uint8_t halfwordNum, uint16_t bitValue, uint8_t dir);
 | |
| void FIO_HalfWordSetMask(uint8_t portNum, uint8_t halfwordNum, uint16_t bitValue, uint8_t maskValue);
 | |
| void FIO_HalfWordSetValue(uint8_t portNum, uint8_t halfwordNum, uint16_t bitValue);
 | |
| void FIO_HalfWordClearValue(uint8_t portNum, uint8_t halfwordNum, uint16_t bitValue);
 | |
| uint16_t FIO_HalfWordReadValue(uint8_t portNum, uint8_t halfwordNum);
 | |
| 
 | |
| /* FIO (byte-accessible) style ------------------------------- */
 | |
| void FIO_ByteSetDir(uint8_t portNum, uint8_t byteNum, uint8_t bitValue, uint8_t dir);
 | |
| void FIO_ByteSetMask(uint8_t portNum, uint8_t byteNum, uint8_t bitValue, uint8_t maskValue);
 | |
| void FIO_ByteSetValue(uint8_t portNum, uint8_t byteNum, uint8_t bitValue);
 | |
| void FIO_ByteClearValue(uint8_t portNum, uint8_t byteNum, uint8_t bitValue);
 | |
| uint8_t FIO_ByteReadValue(uint8_t portNum, uint8_t byteNum);
 | |
| 
 | |
| /**
 | |
|  * @}
 | |
|  */
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* LPC17XX_GPIO_H_ */
 | |
| 
 | |
| /**
 | |
|  * @}
 | |
|  */
 | |
| 
 | |
| /* --------------------------------- End Of File ------------------------------ */
 | 
