Esp8266/Components/esp8266/include/gpio.h File Reference
#include <c_types.h>
Include dependency graph for Esp8266/Components/esp8266/include/gpio.h:

Go to the source code of this file.

Macros

#define GPIO_PIN_ADDR(i)   (GPIO_PIN0_ADDRESS + i * 4)
 
#define GPIO_ID_IS_PIN_REGISTER(reg_id)   ((reg_id >= GPIO_ID_PIN0) && (reg_id <= GPIO_ID_PIN(GPIO_PIN_COUNT - 1)))
 
#define GPIO_REGID_TO_PINIDX(reg_id)   ((reg_id)-GPIO_ID_PIN0)
 
#define GPIO_OUTPUT_SET(gpio_no, bit_value)    gpio_output_set((bit_value) << gpio_no, ((~(bit_value)) & 0x01) << gpio_no, 1 << gpio_no, 0)
 
#define GPIO_DIS_OUTPUT(gpio_no)   gpio_output_set(0, 0, 0, 1 << gpio_no)
 
#define GPIO_INPUT_GET(gpio_no)   ((gpio_input_get() >> gpio_no) & BIT0)
 

Typedefs

typedef void(* gpio_intr_handler_fn_t) (uint32_t intr_mask, void *arg)
 

Enumerations

enum  GPIO_INT_TYPE {
  GPIO_PIN_INTR_DISABLE = 0 , GPIO_PIN_INTR_POSEDGE = 1 , GPIO_PIN_INTR_NEGEDGE = 2 , GPIO_PIN_INTR_ANYEDGE = 3 ,
  GPIO_PIN_INTR_LOLEVEL = 4 , GPIO_PIN_INTR_HILEVEL = 5 , GPIO_PIN_INTR_DISABLE = 0 , GPIO_PIN_INTR_POSEDGE = GPIO_IRQ_EDGE_RISE ,
  GPIO_PIN_INTR_NEGEDGE = GPIO_IRQ_EDGE_FALL , GPIO_PIN_INTR_ANYEDGE = GPIO_IRQ_EDGE_RISE | GPIO_IRQ_EDGE_FALL , GPIO_PIN_INTR_LOLEVEL = GPIO_IRQ_LEVEL_LOW , GPIO_PIN_INTR_HILEVEL = GPIO_IRQ_LEVEL_HIGH
}
 

Functions

void gpio_init (void)
 
void gpio_output_set (uint32_t set_mask, uint32_t clear_mask, uint32_t enable_mask, uint32_t disable_mask)
 
uint32_t gpio_input_get (void)
 
void gpio_register_set (uint32_t reg_id, uint32_t value)
 
uint32_t gpio_register_get (uint32_t reg_id)
 
void gpio_intr_handler_register (gpio_intr_handler_fn_t fn, void *arg)
 
uint32_t gpio_intr_pending (void)
 
void gpio_intr_ack (uint32_t ack_mask)
 
void gpio_pin_wakeup_enable (uint32_t i, GPIO_INT_TYPE intr_state)
 
void gpio_pin_wakeup_disable ()
 
void gpio_pin_intr_state_set (uint32_t i, GPIO_INT_TYPE intr_state)
 

Macro Definition Documentation

◆ GPIO_DIS_OUTPUT

#define GPIO_DIS_OUTPUT (   gpio_no)    gpio_output_set(0, 0, 0, 1 << gpio_no)

◆ GPIO_ID_IS_PIN_REGISTER

#define GPIO_ID_IS_PIN_REGISTER (   reg_id)    ((reg_id >= GPIO_ID_PIN0) && (reg_id <= GPIO_ID_PIN(GPIO_PIN_COUNT - 1)))

◆ GPIO_INPUT_GET

#define GPIO_INPUT_GET (   gpio_no)    ((gpio_input_get() >> gpio_no) & BIT0)

◆ GPIO_OUTPUT_SET

#define GPIO_OUTPUT_SET (   gpio_no,
  bit_value 
)     gpio_output_set((bit_value) << gpio_no, ((~(bit_value)) & 0x01) << gpio_no, 1 << gpio_no, 0)

◆ GPIO_PIN_ADDR

#define GPIO_PIN_ADDR (   i)    (GPIO_PIN0_ADDRESS + i * 4)

◆ GPIO_REGID_TO_PINIDX

#define GPIO_REGID_TO_PINIDX (   reg_id)    ((reg_id)-GPIO_ID_PIN0)

Typedef Documentation

◆ gpio_intr_handler_fn_t

typedef void(* gpio_intr_handler_fn_t) (uint32_t intr_mask, void *arg)

Enumeration Type Documentation

◆ GPIO_INT_TYPE

Enumerator
GPIO_PIN_INTR_DISABLE 

Interrupt disabled for this pin

GPIO_PIN_INTR_POSEDGE 

Interrupt occurs on positive edge

GPIO_PIN_INTR_NEGEDGE 

Interrupt occurs on negative edge

GPIO_PIN_INTR_ANYEDGE 

Interrupt occurs on both positive and negative edge

GPIO_PIN_INTR_LOLEVEL 

Interrupt occurs when GPIO low

GPIO_PIN_INTR_HILEVEL 

Interrupt occurs when GPIO high

GPIO_PIN_INTR_DISABLE 
GPIO_PIN_INTR_POSEDGE 
GPIO_PIN_INTR_NEGEDGE 
GPIO_PIN_INTR_ANYEDGE 
GPIO_PIN_INTR_LOLEVEL 
GPIO_PIN_INTR_HILEVEL 

Function Documentation

◆ gpio_init()

void gpio_init ( void  )

◆ gpio_input_get()

uint32_t gpio_input_get ( void  )

◆ gpio_intr_ack()

void gpio_intr_ack ( uint32_t  ack_mask)

◆ gpio_intr_handler_register()

void gpio_intr_handler_register ( gpio_intr_handler_fn_t  fn,
void *  arg 
)

◆ gpio_intr_pending()

uint32_t gpio_intr_pending ( void  )

◆ gpio_output_set()

void gpio_output_set ( uint32_t  set_mask,
uint32_t  clear_mask,
uint32_t  enable_mask,
uint32_t  disable_mask 
)

◆ gpio_pin_intr_state_set()

void gpio_pin_intr_state_set ( uint32_t  i,
GPIO_INT_TYPE  intr_state 
)

◆ gpio_pin_wakeup_disable()

void gpio_pin_wakeup_disable ( )

◆ gpio_pin_wakeup_enable()

void gpio_pin_wakeup_enable ( uint32_t  i,
GPIO_INT_TYPE  intr_state 
)

◆ gpio_register_get()

uint32_t gpio_register_get ( uint32_t  reg_id)

◆ gpio_register_set()

void gpio_register_set ( uint32_t  reg_id,
uint32_t  value 
)