You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.4 KiB
43 lines
1.4 KiB
8 years ago
|
#include "ets_sys.h"
|
||
|
#include "osapi.h"
|
||
|
#include "driver/gpio16.h"
|
||
|
|
||
|
void ICACHE_FLASH_ATTR
|
||
|
gpio16_output_conf(void)
|
||
|
{
|
||
|
WRITE_PERI_REG(PAD_XPD_DCDC_CONF,
|
||
|
(READ_PERI_REG(PAD_XPD_DCDC_CONF) & 0xffffffbc) | (uint32)0x1); // mux configuration for XPD_DCDC to output rtc_gpio0
|
||
|
|
||
|
WRITE_PERI_REG(RTC_GPIO_CONF,
|
||
|
(READ_PERI_REG(RTC_GPIO_CONF) & (uint32)0xfffffffe) | (uint32)0x0); //mux configuration for out enable
|
||
|
|
||
|
WRITE_PERI_REG(RTC_GPIO_ENABLE,
|
||
|
(READ_PERI_REG(RTC_GPIO_ENABLE) & (uint32)0xfffffffe) | (uint32)0x1); //out enable
|
||
|
}
|
||
|
|
||
|
void ICACHE_FLASH_ATTR
|
||
|
gpio16_output_set(uint8 value)
|
||
|
{
|
||
|
WRITE_PERI_REG(RTC_GPIO_OUT,
|
||
|
(READ_PERI_REG(RTC_GPIO_OUT) & (uint32)0xfffffffe) | (uint32)(value & 1));
|
||
|
}
|
||
|
|
||
|
void ICACHE_FLASH_ATTR
|
||
|
gpio16_input_conf(void)
|
||
|
{
|
||
|
WRITE_PERI_REG(PAD_XPD_DCDC_CONF,
|
||
|
(READ_PERI_REG(PAD_XPD_DCDC_CONF) & 0xffffffbc) | (uint32)0x1); // mux configuration for XPD_DCDC and rtc_gpio0 connection
|
||
|
|
||
|
WRITE_PERI_REG(RTC_GPIO_CONF,
|
||
|
(READ_PERI_REG(RTC_GPIO_CONF) & (uint32)0xfffffffe) | (uint32)0x0); //mux configuration for out enable
|
||
|
|
||
|
WRITE_PERI_REG(RTC_GPIO_ENABLE,
|
||
|
READ_PERI_REG(RTC_GPIO_ENABLE) & (uint32)0xfffffffe); //out disable
|
||
|
}
|
||
|
|
||
|
uint8 ICACHE_FLASH_ATTR
|
||
|
gpio16_input_get(void)
|
||
|
{
|
||
|
return (uint8)(READ_PERI_REG(RTC_GPIO_IN_DATA) & 1);
|
||
|
}
|