|
@@ -14,6 +14,72 @@
|
|
|
#include "common.h"
|
|
#include "common.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+#ifdef SUPPORT_CHONGQING
|
|
|
|
|
+
|
|
|
|
|
+#define RELAY_2_8_RCU GPIOB
|
|
|
|
|
+
|
|
|
|
|
+#define RELAY_1_RCU GPIOA
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ #if (RelaySlaveChaNum >= 1)
|
|
|
|
|
+ #define RELAY_1 GPIO_PIN_15
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >= 2)
|
|
|
|
|
+ #define RELAY_2 GPIO_PIN_3
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >= 3)
|
|
|
|
|
+ #define RELAY_3 GPIO_PIN_4
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+ #if (RelaySlaveChaNum >= 4)
|
|
|
|
|
+ #define RELAY_4 GPIO_PIN_5
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >= 5)
|
|
|
|
|
+ #define RELAY_5 GPIO_PIN_6
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >= 6)
|
|
|
|
|
+ #define RELAY_6 GPIO_PIN_7
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >= 7)
|
|
|
|
|
+ #define RELAY_7 GPIO_PIN_8
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >= 8)
|
|
|
|
|
+ #define RELAY_8 GPIO_PIN_9
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+#define RELAY_1_ON gpio_bit_set(RELAY_1_RCU,RELAY_1);
|
|
|
|
|
+#define RELAY_1_OFF gpio_bit_reset(RELAY_1_RCU,RELAY_1);
|
|
|
|
|
+
|
|
|
|
|
+#define RELAY_2_ON gpio_bit_set(RELAY_2_8_RCU,RELAY_2);
|
|
|
|
|
+#define RELAY_2_OFF gpio_bit_reset(RELAY_2_8_RCU,RELAY_2);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+#define RELAY_3_ON gpio_bit_set(RELAY_2_8_RCU,RELAY_3);
|
|
|
|
|
+#define RELAY_3_OFF gpio_bit_reset(RELAY_2_8_RCU,RELAY_3);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+#define RELAY_4_ON gpio_bit_set(RELAY_2_8_RCU,RELAY_4);
|
|
|
|
|
+#define RELAY_4_OFF gpio_bit_reset(RELAY_2_8_RCU,RELAY_4);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+#define RELAY_5_ON gpio_bit_set(RELAY_2_8_RCU,RELAY_5);
|
|
|
|
|
+#define RELAY_5_OFF gpio_bit_reset(RELAY_2_8_RCU,RELAY_5);
|
|
|
|
|
+
|
|
|
|
|
+#define RELAY_6_ON gpio_bit_set(RELAY_2_8_RCU,RELAY_6);
|
|
|
|
|
+#define RELAY_6_OFF gpio_bit_reset(RELAY_2_8_RCU,RELAY_6);
|
|
|
|
|
+
|
|
|
|
|
+#define RELAY_7_ON gpio_bit_set(RELAY_2_8_RCU,RELAY_7);
|
|
|
|
|
+#define RELAY_7_OFF gpio_bit_reset(RELAY_2_8_RCU,RELAY_7);
|
|
|
|
|
+
|
|
|
|
|
+#define RELAY_8_ON gpio_bit_set(RELAY_2_8_RCU,RELAY_8);
|
|
|
|
|
+#define RELAY_8_OFF gpio_bit_reset(RELAY_2_8_RCU,RELAY_8);
|
|
|
|
|
+
|
|
|
|
|
+#else
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
#define RELAY_8_RCU GPIOA
|
|
#define RELAY_8_RCU GPIOA
|
|
|
|
|
|
|
|
#define RELAY_1_7_RCU GPIOB
|
|
#define RELAY_1_7_RCU GPIOB
|
|
@@ -78,7 +144,7 @@
|
|
|
#define RELAY_8_OFF gpio_bit_reset(RELAY_8_RCU,RELAY_8);
|
|
#define RELAY_8_OFF gpio_bit_reset(RELAY_8_RCU,RELAY_8);
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
static void relay_open(uint8_t channel);
|
|
static void relay_open(uint8_t channel);
|
|
|
static void relay_close(uint8_t channel);
|
|
static void relay_close(uint8_t channel);
|
|
@@ -92,6 +158,51 @@ void relay_init(void)
|
|
|
board_t * board = get_board();
|
|
board_t * board = get_board();
|
|
|
rcu_periph_clock_enable(RCU_GPIOB);
|
|
rcu_periph_clock_enable(RCU_GPIOB);
|
|
|
rcu_periph_clock_enable(RCU_GPIOA);
|
|
rcu_periph_clock_enable(RCU_GPIOA);
|
|
|
|
|
+
|
|
|
|
|
+#if SUPPORT_CHONGQING
|
|
|
|
|
+ #if (RelaySlaveChaNum >=1)
|
|
|
|
|
+ gpio_mode_set(RELAY_1_RCU,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_1);
|
|
|
|
|
+ gpio_output_options_set(RELAY_1_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_1);
|
|
|
|
|
+ gpio_bit_reset(RELAY_1_RCU, RELAY_1);
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >=2)
|
|
|
|
|
+ gpio_mode_set(RELAY_2_8_RCU,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_2);
|
|
|
|
|
+ gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_2);
|
|
|
|
|
+ gpio_bit_reset(RELAY_2_8_RCU, RELAY_2);
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >=3)
|
|
|
|
|
+ gpio_mode_set(RELAY_2_8_RCU,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_3);
|
|
|
|
|
+ gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_3);
|
|
|
|
|
+ gpio_bit_reset(RELAY_2_8_RCU, RELAY_3);
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >=4)
|
|
|
|
|
+ gpio_mode_set(RELAY_2_8_RCU,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_4);
|
|
|
|
|
+ gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_4);
|
|
|
|
|
+ gpio_bit_reset(RELAY_2_8_RCU, RELAY_4);
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+ #if (RelaySlaveChaNum >=5)
|
|
|
|
|
+ gpio_mode_set(RELAY_2_8_RCU,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLDOWN,RELAY_5);
|
|
|
|
|
+ gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_5);
|
|
|
|
|
+ gpio_bit_reset(RELAY_2_8_RCU, RELAY_5);
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >=6)
|
|
|
|
|
+ gpio_mode_set(RELAY_2_8_RCU,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLDOWN,RELAY_6);
|
|
|
|
|
+ gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_6);
|
|
|
|
|
+ gpio_bit_reset(RELAY_2_8_RCU, RELAY_6);
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >=7)
|
|
|
|
|
+ gpio_mode_set(RELAY_2_8_RCU,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLDOWN,RELAY_7);
|
|
|
|
|
+ gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_7);
|
|
|
|
|
+ gpio_bit_reset(RELAY_2_8_RCU, RELAY_7);
|
|
|
|
|
+ #endif
|
|
|
|
|
+ #if (RelaySlaveChaNum >=8)
|
|
|
|
|
+ gpio_mode_set(RELAY_2_8_RCU,GPIO_MODE_OUTPUT,GPIO_PUPD_PULLDOWN,RELAY_8);
|
|
|
|
|
+ gpio_output_options_set(RELAY_2_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_8);
|
|
|
|
|
+ gpio_bit_reset(RELAY_2_8_RCU, RELAY_8);
|
|
|
|
|
+ #endif
|
|
|
|
|
+
|
|
|
|
|
+#else
|
|
|
#if (RelaySlaveChaNum >=1)
|
|
#if (RelaySlaveChaNum >=1)
|
|
|
gpio_mode_set(RELAY_1_7_RCU,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_1);
|
|
gpio_mode_set(RELAY_1_7_RCU,GPIO_MODE_OUTPUT,GPIO_PUPD_NONE,RELAY_1);
|
|
|
gpio_output_options_set(RELAY_1_7_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_1);
|
|
gpio_output_options_set(RELAY_1_7_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_1);
|
|
@@ -133,7 +244,7 @@ void relay_init(void)
|
|
|
gpio_output_options_set(RELAY_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_8);
|
|
gpio_output_options_set(RELAY_8_RCU, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, RELAY_8);
|
|
|
gpio_bit_reset(RELAY_8_RCU, RELAY_8);
|
|
gpio_bit_reset(RELAY_8_RCU, RELAY_8);
|
|
|
#endif
|
|
#endif
|
|
|
-
|
|
|
|
|
|
|
+#endif
|
|
|
board->unlock();
|
|
board->unlock();
|
|
|
board->lock();
|
|
board->lock();
|
|
|
|
|
|