|
|
@@ -64,11 +64,14 @@
|
|
|
#define KEY_TEST_4_IO_SOURCE EXTI_SOURCE_PIN1
|
|
|
#define KEY_TEST_4_IO_EXIT EXTI_1
|
|
|
|
|
|
-
|
|
|
+#define KEY_TEST_5_IO GPIO_PIN_12
|
|
|
+#define KEY_TEST_5_IO_SOURCE_RCU EXTI_SOURCE_GPIOA
|
|
|
+#define KEY_TEST_5_IO_SOURCE EXTI_SOURCE_PIN12
|
|
|
+#define KEY_TEST_5_IO_EXIT EXTI_12
|
|
|
|
|
|
#define KEY_TEST_1_GPIO GPIOC
|
|
|
#define KEY_TEST_2_GPIO GPIOB
|
|
|
-#define KEY_TEST_3_4_GPIO GPIOA
|
|
|
+#define KEY_TEST_3_4_5_GPIO GPIOA
|
|
|
|
|
|
|
|
|
|
|
|
@@ -214,7 +217,7 @@ void key_init(void)
|
|
|
|
|
|
|
|
|
#if (RelaySlaveChaNum >= 3)
|
|
|
- gpio_mode_set(KEY_TEST_3_4_GPIO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_TEST_3_IO);
|
|
|
+ gpio_mode_set(KEY_TEST_3_4_5_GPIO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_TEST_3_IO);
|
|
|
nvic_irq_enable(EXTI0_1_IRQn,1);
|
|
|
syscfg_exti_line_config(KEY_TEST_3_IO_SOURCE_RCU,KEY_TEST_3_IO_SOURCE);
|
|
|
exti_init(KEY_TEST_3_IO_EXIT,EXTI_INTERRUPT,EXTI_TRIG_FALLING);
|
|
|
@@ -222,13 +225,20 @@ void key_init(void)
|
|
|
#endif
|
|
|
|
|
|
#if (RelaySlaveChaNum >= 4)
|
|
|
- gpio_mode_set(KEY_TEST_3_4_GPIO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_TEST_4_IO);
|
|
|
+ gpio_mode_set(KEY_TEST_3_4_5_GPIO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_TEST_4_IO);
|
|
|
nvic_irq_enable(EXTI0_1_IRQn,1);
|
|
|
syscfg_exti_line_config(KEY_TEST_4_IO_SOURCE_RCU,KEY_TEST_4_IO_SOURCE);
|
|
|
exti_init(KEY_TEST_4_IO_EXIT,EXTI_INTERRUPT,EXTI_TRIG_FALLING);
|
|
|
exti_interrupt_flag_clear(KEY_TEST_4_IO_EXIT);
|
|
|
#endif
|
|
|
|
|
|
+#if (RelaySlaveChaNum >= 5)
|
|
|
+ gpio_mode_set(KEY_TEST_3_4_5_GPIO, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, KEY_TEST_5_IO);
|
|
|
+ nvic_irq_enable(EXTI4_15_IRQn,1);
|
|
|
+ syscfg_exti_line_config(KEY_TEST_5_IO_SOURCE_RCU,KEY_TEST_5_IO_SOURCE);
|
|
|
+ exti_init(KEY_TEST_5_IO_EXIT,EXTI_INTERRUPT,EXTI_TRIG_FALLING);
|
|
|
+ exti_interrupt_flag_clear(KEY_TEST_5_IO_EXIT);
|
|
|
+#endif
|
|
|
|
|
|
#endif
|
|
|
|
|
|
@@ -288,6 +298,7 @@ void EXTI4_15_IRQHandler(void){
|
|
|
if(RESET != exti_interrupt_flag_get(KEY_TEST_1_IO_EXIT))
|
|
|
{
|
|
|
exti_interrupt_flag_clear(KEY_TEST_1_IO_EXIT);
|
|
|
+ for(int i = 0;i <30;i++);
|
|
|
if(gpio_input_bit_get(KEY_TEST_1_GPIO,KEY_TEST_1_IO) == 0)
|
|
|
{
|
|
|
async_data da = {0};
|
|
|
@@ -301,6 +312,25 @@ void EXTI4_15_IRQHandler(void){
|
|
|
}
|
|
|
}
|
|
|
#endif
|
|
|
+
|
|
|
+#if (RelaySlaveChaNum >= 5)
|
|
|
+ if(RESET != exti_interrupt_flag_get(KEY_TEST_5_IO_EXIT))
|
|
|
+ {
|
|
|
+ exti_interrupt_flag_clear(KEY_TEST_5_IO_EXIT);
|
|
|
+ for(int i = 0;i <30;i++);
|
|
|
+ if(gpio_input_bit_get(KEY_TEST_3_4_5_GPIO,KEY_TEST_5_IO) == 0)
|
|
|
+ {
|
|
|
+ async_data da = {0};
|
|
|
+ da.fire_or_zero = _FIRE;
|
|
|
+ da.method = PROMPT_CTRL;
|
|
|
+ da.w_eep_flag = FLAG_W_EEP;
|
|
|
+ da.channel = 4;
|
|
|
+ da.reg = &board->relay_staging_staus[4];
|
|
|
+ da.status = board->md_data.r_data.state.state[4].state ? 0 : 1;
|
|
|
+ set_relay_sta_async(&da);
|
|
|
+ }
|
|
|
+ }
|
|
|
+#endif
|
|
|
|
|
|
|
|
|
#endif
|
|
|
@@ -332,7 +362,8 @@ void EXTI0_1_IRQHandler(void)
|
|
|
if(RESET != exti_interrupt_flag_get(KEY_TEST_3_IO_EXIT))
|
|
|
{
|
|
|
exti_interrupt_flag_clear(KEY_TEST_3_IO_EXIT);
|
|
|
- if(gpio_input_bit_get(KEY_TEST_3_4_GPIO,KEY_TEST_3_IO) == 0)
|
|
|
+ for(int i = 0;i <30;i++);
|
|
|
+ if(gpio_input_bit_get(KEY_TEST_3_4_5_GPIO,KEY_TEST_3_IO) == 0)
|
|
|
{
|
|
|
async_data da = {0};
|
|
|
da.fire_or_zero = _FIRE;
|
|
|
@@ -352,7 +383,8 @@ void EXTI0_1_IRQHandler(void)
|
|
|
if(RESET != exti_interrupt_flag_get(KEY_TEST_4_IO_EXIT))
|
|
|
{
|
|
|
exti_interrupt_flag_clear(KEY_TEST_4_IO_EXIT);
|
|
|
- if(gpio_input_bit_get(KEY_TEST_3_4_GPIO,KEY_TEST_4_IO) == 0)
|
|
|
+ for(int i = 0;i <30;i++);
|
|
|
+ if(gpio_input_bit_get(KEY_TEST_3_4_5_GPIO,KEY_TEST_4_IO) == 0)
|
|
|
{
|
|
|
async_data da = {0};
|
|
|
da.fire_or_zero = _FIRE;
|
|
|
@@ -445,6 +477,7 @@ void EXTI2_3_IRQHandler(void)
|
|
|
if(board->md_data.r_data.detection & 0x1)
|
|
|
#endif
|
|
|
{
|
|
|
+ for(int i = 0;i <30;i++);
|
|
|
if(gpio_input_bit_get(KEY_TEST_2_GPIO,KEY_TEST_2_IO) == 0)
|
|
|
{
|
|
|
async_data da = {0};
|