15#ifndef ___FW_GPIO_H___
16#define ___FW_GPIO_H___
37#if (__CONF_MCU_TYPE == 1 ) || (__CONF_MCU_TYPE == 3 )
74#define GPIO_P0_SetMode(__PINS__, __MODE__) do { \
75 P0M0 = P0M0 & ~(__PINS__) | (((__MODE__) & 0x01)? (__PINS__) : 0x00); \
76 P0M1 = P0M1 & ~(__PINS__) | (((__MODE__) & 0x02)? (__PINS__) : 0x00); \
79#define GPIO_P1_SetMode(__PINS__, __MODE__) do { \
80 P1M0 = P1M0 & ~(__PINS__) | (((__MODE__) & 0x01)? (__PINS__) : 0x00); \
81 P1M1 = P1M1 & ~(__PINS__) | (((__MODE__) & 0x02)? (__PINS__) : 0x00); \
84#define GPIO_P2_SetMode(__PINS__, __MODE__) do { \
85 P2M0 = P2M0 & ~(__PINS__) | (((__MODE__) & 0x01)? (__PINS__) : 0x00); \
86 P2M1 = P2M1 & ~(__PINS__) | (((__MODE__) & 0x02)? (__PINS__) : 0x00); \
89#define GPIO_P3_SetMode(__PINS__, __MODE__) do { \
90 P3M0 = P3M0 & ~(__PINS__) | (((__MODE__) & 0x01)? (__PINS__) : 0x00); \
91 P3M1 = P3M1 & ~(__PINS__) | (((__MODE__) & 0x02)? (__PINS__) : 0x00); \
94#define GPIO_P4_SetMode(__PINS__, __MODE__) do { \
95 P4M0 = P4M0 & ~(__PINS__) | (((__MODE__) & 0x01)? (__PINS__) : 0x00); \
96 P4M1 = P4M1 & ~(__PINS__) | (((__MODE__) & 0x02)? (__PINS__) : 0x00); \
99#define GPIO_P5_SetMode(__PINS__, __MODE__) do { \
100 P5M0 = P5M0 & ~(__PINS__) | (((__MODE__) & 0x01)? (__PINS__) : 0x00); \
101 P5M1 = P5M1 & ~(__PINS__) | (((__MODE__) & 0x02)? (__PINS__) : 0x00); \
104#if (__CONF_MCU_TYPE == 1 ) || (__CONF_MCU_TYPE == 3 )
105#define GPIO_P6_SetMode(__PINS__, __MODE__) do { \
106 P6M0 = P6M0 & ~(__PINS__) | (((__MODE__) & 0x01)? (__PINS__) : 0x00); \
107 P6M1 = P6M1 & ~(__PINS__) | (((__MODE__) & 0x02)? (__PINS__) : 0x00); \
110#define GPIO_P7_SetMode(__PINS__, __MODE__) do { \
111 P7M0 = P7M0 & ~(__PINS__) | (((__MODE__) & 0x01)? (__PINS__) : 0x00); \
112 P7M1 = P7M1 & ~(__PINS__) | (((__MODE__) & 0x02)? (__PINS__) : 0x00); \
116#define GPIO_SetPullUp(__PORT__, __PINS__, __STATE__) do { \
118 SFRX(PxPU + (__PORT__)) = SFRX(PxPU + (__PORT__)) \
119 & ~(__PINS__) | (((__STATE__) & 0x01)? (__PINS__) : 0x00); \
123#define GPIO_SetSchmittTrigger(__PORT__, __PINS__, __STATE__) do { \
125 SFRX(PxNCS + (__PORT__)) = SFRX(PxNCS + (__PORT__)) \
126 & ~(__PINS__) | (((__STATE__) & 0x01)? (__PINS__) : 0x00); \
130#define GPIO_SetSwitchSpeed(__PORT__, __PINS__, __STATE__) do { \
132 SFRX(PxSR + (__PORT__)) = SFRX(PxSR + (__PORT__)) \
133 & ~(__PINS__) | (((__STATE__) & 0x01)? (__PINS__) : 0x00); \
137#define GPIO_SetDriveCapability(__PORT__, __PINS__, __STATE__) do { \
139 SFRX(PxDR + (__PORT__)) = SFRX(PxDR + (__PORT__)) \
140 & ~(__PINS__) | (((__STATE__) & 0x01)? (__PINS__) : 0x00); \
144#define GPIO_SetDigitalInput(__PORT__, __PINS__, __STATE__) do { \
146 SFRX(PxIE + (__PORT__)) = SFRX(PxIE + (__PORT__)) \
147 & ~(__PINS__) | (((__STATE__) & 0x01)? (__PINS__) : 0x00); \
@ GPIO_SchmittTrigger_OFF
@ GPIO_DriveCapability_Normal
@ GPIO_DriveCapability_High