PDL for FM0+  Version1.0
Peripheral Driverl Library for FM0+
C:/pdl_v10/library/driver/gpio/gpio.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 * Copyright (C) 2013 Spansion LLC. All Rights Reserved. 
00003 *
00004 * This software is owned and published by: 
00005 * Spansion LLC, 915 DeGuigne Dr. Sunnyvale, CA  94088-3453 ("Spansion").
00006 *
00007 * BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND 
00008 * BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.
00009 *
00010 * This software contains source code for use with Spansion 
00011 * components. This software is licensed by Spansion to be adapted only 
00012 * for use in systems utilizing Spansion components. Spansion shall not be 
00013 * responsible for misuse or illegal use of this software for devices not 
00014 * supported herein.  Spansion is providing this software "AS IS" and will 
00015 * not be responsible for issues arising from incorrect user implementation 
00016 * of the software.  
00017 *
00018 * SPANSION MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE,
00019 * REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS), 
00020 * ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING, 
00021 * WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED 
00022 * WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED 
00023 * WARRANTY OF NONINFRINGEMENT.  
00024 * SPANSION SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT, 
00025 * NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT 
00026 * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, 
00027 * LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR 
00028 * INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT, 
00029 * INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA, 
00030 * SAVINGS OR PROFITS, 
00031 * EVEN IF SPANSION HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 
00032 * YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR
00033 * INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED 
00034 * FROM, THE SOFTWARE.  
00035 *
00036 * This software may be replicated in part or whole for the licensed use, 
00037 * with the restriction that this Disclaimer and Copyright notice must be 
00038 * included with each copy of this software, whether used in part or whole, 
00039 * at all times.  
00040 */
00041 /******************************************************************************/
00051 #ifndef __GPIO_H__
00052 #define __GPIO_H__
00053 
00054 /******************************************************************************/
00055 /* Include files                                                              */
00056 /******************************************************************************/
00057 #include "mcu.h"
00058 #include "pdl_user.h"
00059 
00060 /* C binding of definitions if building with C++ compiler */
00061 #ifdef __cplusplus
00062 extern "C"
00063 {
00064 #endif
00065 
00082   
00083 /******************************************************************************/
00084 /* Defines                                                                    */
00085 /******************************************************************************/
00086 
00087 #define Gpio1pin_InitIn(p,settings)    do{ stc_gpio1pin_init_t __v__;\
00088                                          __v__.bPullup=0u;__v__.bInitVal=0u;\
00089                                          (settings);\
00090                                          p##_INITIN(__v__); }while(0)
00091 
00092 #define Gpio1pin_InitOut(p,settings)   do{ stc_gpio1pin_init_t __v__;\
00093                                          __v__.bPullup=0u;__v__.bInitVal=0u;\
00094                                          (settings);\
00095                                          p##_INITOUT(__v__); }while(0)
00096                                       
00097 #define Gpio1pin_Init(p,settings)      do{ stc_gpio1pin_init_t __v__;__v__.bOutput=0u;\
00098                                          __v__.bPullup=0u;__v__.bInitVal=0u;\
00099                                          (settings);\
00100                                          p##_INIT( __v__ ); }while(0) 
00101 
00102 #define Gpio1pin_InitDirectionInput    (__v__.bOutput=0u)
00103 #define Gpio1pin_InitDirectionOutput   (__v__.bOutput=1u)
00104 #define Gpio1pin_InitPullup(v)         (__v__.bPullup=(v))
00105 #define Gpio1pin_InitVal(v)            (__v__.bInitVal=(v))
00106         
00107 
00108 
00109 #define Gpio1pin_Get(p)          p##_GET  
00110 #define Gpio1pin_Put(p,v)        p##_PUT(v)
00111   
00112 #define PINRELOC_SET_EPFR(epfr,pos,width,value)    \
00113           ((epfr) = ((epfr) & ~(((1u<<(width))-1u)<<(pos)) | \
00114           ((value) << (pos))))
00115 
00116 /******************************************************************************/
00117 /* Inclusion of GPIO defines of user defined device                           */
00118 /******************************************************************************/
00119 
00120 #if (PDL_MCU_SERIES == PDL_DEVICE_SERIES_S6E1A1)
00121   #if (PDL_PACKAGE == PDL_DEVICE_PACKAGE_B)
00122     #include "gpio_s6e1a1xb0a.h"
00123   #elif (PDL_PACKAGE == PDL_DEVICE_PACKAGE_C)
00124     #include "gpio_s6e1a1xc0a.h"
00125   #else
00126     #error Package for S6E1A1 series not found!
00127   #endif
00128 #else
00129   #error Device not found!
00130 #endif
00131 
00132 
00133 /******************************************************************************/
00134 /* Types                                                                      */
00135 /******************************************************************************/
00136 
00137 typedef struct stc_gpio1pin_init
00138 {
00139     boolean_t bOutput;
00140     boolean_t bInitVal;
00141     boolean_t bPullup; 
00142 } stc_gpio1pin_init_t;
00143 
00144 
00146 
00147 #ifdef __cplusplus
00148 }
00149 #endif
00150 
00151 #endif /* __GPIO_H__ */
00152 
00153 /******************************************************************************/
00154 /* EOF (not truncated)                                                        */
00155 /******************************************************************************/