gpio16.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "ets_sys.h"
  2. #include "osapi.h"
  3. #include "driver/gpio16.h"
  4. void ICACHE_FLASH_ATTR
  5. gpio16_output_conf(void)
  6. {
  7. WRITE_PERI_REG(PAD_XPD_DCDC_CONF,
  8. (READ_PERI_REG(PAD_XPD_DCDC_CONF) & 0xffffffbc) | (uint32)0x1); // mux configuration for XPD_DCDC to output rtc_gpio0
  9. WRITE_PERI_REG(RTC_GPIO_CONF,
  10. (READ_PERI_REG(RTC_GPIO_CONF) & (uint32)0xfffffffe) | (uint32)0x0); //mux configuration for out enable
  11. WRITE_PERI_REG(RTC_GPIO_ENABLE,
  12. (READ_PERI_REG(RTC_GPIO_ENABLE) & (uint32)0xfffffffe) | (uint32)0x1); //out enable
  13. }
  14. void ICACHE_FLASH_ATTR
  15. gpio16_output_set(uint8 value)
  16. {
  17. WRITE_PERI_REG(RTC_GPIO_OUT,
  18. (READ_PERI_REG(RTC_GPIO_OUT) & (uint32)0xfffffffe) | (uint32)(value & 1));
  19. }
  20. void ICACHE_FLASH_ATTR
  21. gpio16_input_conf(void)
  22. {
  23. WRITE_PERI_REG(PAD_XPD_DCDC_CONF,
  24. (READ_PERI_REG(PAD_XPD_DCDC_CONF) & 0xffffffbc) | (uint32)0x1); // mux configuration for XPD_DCDC and rtc_gpio0 connection
  25. WRITE_PERI_REG(RTC_GPIO_CONF,
  26. (READ_PERI_REG(RTC_GPIO_CONF) & (uint32)0xfffffffe) | (uint32)0x0); //mux configuration for out enable
  27. WRITE_PERI_REG(RTC_GPIO_ENABLE,
  28. READ_PERI_REG(RTC_GPIO_ENABLE) & (uint32)0xfffffffe); //out disable
  29. }
  30. uint8 ICACHE_FLASH_ATTR
  31. gpio16_input_get(void)
  32. {
  33. return (uint8)(READ_PERI_REG(RTC_GPIO_IN_DATA) & 1);
  34. }