diff --git a/src/W800 SDK v1.00.08/app/app_drivers/i2c/CST816D.c b/src/W800 SDK v1.00.08/app/app_drivers/i2c/CST816D.c index 6a38920..df7688e 100644 --- a/src/W800 SDK v1.00.08/app/app_drivers/i2c/CST816D.c +++ b/src/W800 SDK v1.00.08/app/app_drivers/i2c/CST816D.c @@ -1,4 +1,7 @@ #include "i2c.h" +#include "wm_gpio.h" +#include "FreeRTOS.h" +#include "app_log.h" #include "CST816D.h" bool CST816D_read_touch_event(CST816D_Touch_Data_t * const touch_data) @@ -22,3 +25,20 @@ bool CST816D_read_touch_event(CST816D_Touch_Data_t * const touch_data) touch_data->isValid = false; return false; } + +bool CST816D_set_power_mode(void) +{ + tls_gpio_cfg(WM_IO_PA_00, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING); + + tls_gpio_write(WM_IO_PA_00, 0); + tls_os_time_delay(pdMS_TO_TICKS(5)); + tls_gpio_write(WM_IO_PA_00, 1); + tls_os_time_delay(pdMS_TO_TICKS(50)); + + uint8_t data; + + i2c_read_reg(CST816D_I2C_ADDR, 0xA5, &data); + + i2c_write_reg(CST816D_I2C_ADDR, 0xA5, 0x03); + APP_LOG_DEBUG("CST 0xA5 : %u", data); +} diff --git a/src/W800 SDK v1.00.08/app/app_drivers/i2c/CST816D.h b/src/W800 SDK v1.00.08/app/app_drivers/i2c/CST816D.h index a7484cf..f061757 100644 --- a/src/W800 SDK v1.00.08/app/app_drivers/i2c/CST816D.h +++ b/src/W800 SDK v1.00.08/app/app_drivers/i2c/CST816D.h @@ -56,4 +56,6 @@ typedef struct CST816D_Touch_Data */ bool CST816D_read_touch_event(CST816D_Touch_Data_t * const touch_data); +bool CST816D_set_power_mode(void); + #endif //CST816D_H \ No newline at end of file