| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- /*********************************************************************************************************
- * Module : R_Led.c
- * Abstract : R_Led module displays the relay status!
- * Version : 1.0.0
- * Author : Leopul(COPYRIGHT 2025 - 2027 Leopul. All rights reserved.)
- * Complete : 2025-02-16
- * Content : None
- * Note : None
- *********************************************************************************************************/
- #include "R_Led.h"
- #include "gd32f30x_libopt.h"
- #include "Sn74lvc573.h"
- #include "main.h"
- #define POWER_R2_Y GPIO_PIN_12
- #define POWER_R2_G GPIO_PIN_11
- #define POWER_R2_R GPIO_PIN_10
- #define POWER_R1_Y GPIO_PIN_9
- #define POWER_R1_G GPIO_PIN_8
- #define POWER_R1_R GPIO_PIN_7
- #define ALL_RUN ((1 << 11) | (1 << 8))
- #define WANING_1_RUN_2 ((1 << 9) | (1 << 11))
- #define WANING_1_WANING_2 ((1 <<12) | (1 << 10) | (1 << 9) | (1 << 7))
- #define WANING_2_RUN_1 ((1 << 12) | (1 << 8))
- #define CLEAR_LED ((1 << 7) | (1 << 8) | (1 << 9) | (1 << 10) | (1 << 11) | (1 << 12))
- uint16_t led_status = 0;
- void r_led_init(void)
- {
- rcu_periph_clock_enable(RCU_GPIOC);
- //
- // gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_2);
- // gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_2);
- // gpio_bit_reset(GPIOB, GPIO_PIN_2);
- // gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_10);
- // gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_10);
- // gpio_bit_reset(GPIOB, GPIO_PIN_10);
- // gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_11);
- // gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_11);
- // gpio_bit_reset(GPIOB, GPIO_PIN_11);
-
- gpio_init(GPIOC,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,POWER_R2_Y |POWER_R2_G| POWER_R2_R | POWER_R1_Y | POWER_R1_G | POWER_R1_R);
- gpio_bit_reset(GPIOC, POWER_R2_Y |POWER_R2_G| POWER_R2_R | POWER_R1_Y | POWER_R1_G | POWER_R1_R);
-
- }
- void in_r_led_on_off(unsigned char channel)
- {
- // if(channel == 0)
- // {
- // gpio_bit_set(GPIOB, GPIO_PIN_2);
- // gpio_bit_reset(GPIOB, GPIO_PIN_10);
- // }else
- // {
- // gpio_bit_reset(GPIOB, GPIO_PIN_2);
- // gpio_bit_set(GPIOB, GPIO_PIN_10);
- // }
- }
- void out_r_led(unsigned char status)
- {
- // if(status == 0)
- // {
- // gpio_bit_set(GPIOB, GPIO_PIN_11);
- // }else
- // {
- // gpio_bit_reset(GPIOB, GPIO_PIN_11);
- // }
- }
- void show_wanning_led(void)
- {
- sts_data_t *data = get_sts();
- uint16_t pre_status = led_status;
- if(data)
- {
- if(data->m_data.input_wanning.waning[0] == 0 && data->m_data.input_wanning.waning[1] == 0)
- {
- led_status = ALL_RUN;
- if(pre_status != led_status)
- {
- gpio_bit_reset(GPIOC,CLEAR_LED);
- gpio_bit_set(GPIOC,led_status);
- unlock();
- lock();
- }
- }else if(data->m_data.input_wanning.waning[0] == 0 && data->m_data.input_wanning.waning[1] > 0)
- {
- led_status = WANING_2_RUN_1;
- if(pre_status != led_status)
- {
- gpio_bit_reset(GPIOC,CLEAR_LED);
- gpio_bit_set(GPIOC,led_status);
- unlock();
- lock();
- }
- }else if(data->m_data.input_wanning.waning[0] > 0 && data->m_data.input_wanning.waning[1] > 0)
- {
- led_status = WANING_1_WANING_2;
- if(pre_status != led_status)
- {
- gpio_bit_reset(GPIOC,CLEAR_LED);
- gpio_bit_set(GPIOC,led_status);
- unlock();
- lock();
- }
- }else
- {
- led_status = WANING_1_RUN_2;
- if(pre_status != led_status)
- {
- gpio_bit_reset(GPIOC,CLEAR_LED);
- gpio_bit_set(GPIOC,led_status);
- unlock();
- lock();
- }
- }
- }
- }
|