#include "yc11xx_gpio.h" #include "yc_drv_common.h" void GPIO_SetOut(GPIO_NUM gpio, GPIO_OutputTypeDef GPIO_Output) { hw_delay(); if (gpio == GPIO_MAX_NUM) return; switch (GPIO_Output) { case OUT_LOW: HWRITE(CORE_GPIO_CONF + (gpio & GPIO_NUM_MASK),GPCFG_OUTPUT_LOW); break; case OUT_HIGH: HWRITE(CORE_GPIO_CONF + (gpio & GPIO_NUM_MASK),GPCFG_OUTPUT_HIGH); break; default: break; } hw_delay(); } void GPIO_SetInput(GPIO_NUM gpio,GPIO_InputTypeDef GPIO_InputMode) { hw_delay(); if (gpio == GPIO_MAX_NUM) return; switch(GPIO_InputMode) { case GPIO_Mode_IN_FLOATING: HWRITE(CORE_GPIO_CONF + (gpio & GPIO_NUM_MASK),GPCFG_INPUT); break; case GPIO_Mode_IPU: HWRITE(CORE_GPIO_CONF + (gpio & GPIO_NUM_MASK),GPCFG_PULLUP); break; case GPIO_Mode_IPD: HWRITE(CORE_GPIO_CONF + (gpio & GPIO_NUM_MASK),GPCFG_PULLDOWN); break; case GPIO_Mode_AIN: HWRITE(CORE_GPIO_CONF + (gpio & GPIO_NUM_MASK),GPCFG_NO_IE); break; default: break; } hw_delay(); } void GPIO_ClearWakeup(GPIO_NUM gpio) { uint8_t row; uint8_t col; if (gpio == GPIO_MAX_NUM) return; row = (gpio>>3) & 0x03; col = (gpio & 0x07); HWRITE(mem_gpio_wakeup_low+row,HREAD(mem_gpio_wakeup_low+row)& (~(1<