#include "key_io.h" #include "gd32e230x_conf.h" #include "Timer.h" #include "Main.h" #define KEY_IO_RCU RCU_GPIOB #define KEY_IO_IO GPIOB #if ACSingPhHigCurr #if (ACSingPhHig_Control_type == ACSingPh_Gen_C) #define KEY_IO_RST GPIO_PIN_1 #define KEY_IO_TEST GPIO_PIN_2 #endif #if (ACSingPhHig_Control_type == ACSingPh_Sub_C) #define KEY_IO_1 GPIO_PIN_1 #define KEY_IO_2 GPIO_PIN_2 #define KEY_IO_3 GPIO_PIN_6 #define KEY_IO_4 GPIO_PIN_7 #endif #endif void key_io_init(void * value) { (void)(value); #if ACSingPhHigCurr rcu_periph_clock_enable(KEY_IO_RCU); #if (ACSingPhHig_Control_type == ACSingPh_Gen_C) gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_RST); gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_TEST); #elif (ACSingPhHig_Control_type == ACSingPh_Sub_C) gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_1); gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_2); gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_3); gpio_mode_set(KEY_IO_IO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_IO_4); #endif #endif } #if ACSingPhHigCurr #if (ACSingPhHig_Control_type == ACSingPh_Gen_C) bool get_rst() { FlagStatus status = SET; bool ret = false; uint32_t count = 100; if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_RST)) == RESET) { while(count--); if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_RST)) == RESET) { ret = true; } } return ret; } bool get_test() { FlagStatus status = SET; bool ret = false; uint32_t count = 100; if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_TEST)) == RESET) { while(count--); if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_TEST)) == RESET) { ret = true; } } return ret; } #elif (ACSingPhHig_Control_type == ACSingPh_Sub_C) bool get_key_io_1() { FlagStatus status = SET; bool ret = false; uint32_t count = 10; if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_1)) == RESET) { while(count--); if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_1)) == RESET) { ret = true; } } return ret; } bool get_key_io_2() { FlagStatus status = SET; bool ret = false; uint32_t count = 10; if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_2)) == RESET) { while(count--); if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_2)) == RESET) { ret = true; } } return ret; } bool get_key_io_3() { FlagStatus status = SET; bool ret = false; uint32_t count = 10; if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_3)) == RESET) { while(count--); if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_3)) == RESET) { ret = true; } } return ret; } bool get_key_io_4() { FlagStatus status = SET; bool ret = false; uint32_t count = 10; if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_4)) == RESET) { while(count--); if((status = gpio_input_bit_get(KEY_IO_IO,KEY_IO_4)) == RESET) { ret = true; } } return ret; } #endif #endif