/*** * @Author: mbw * @Date: 2024-09-05 14:00:04 * @LastEditors: mbw && 1600520629@qq.com * @LastEditTime: 2024-09-18 10:29:32 * @FilePath: \USART1_Interrupt - RT-Thread\bsp\inc\bsp_io_dev.h * @Description: * @ * @Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. */ #ifndef __BSP_IO_DEV_H__ #define __BSP_IO_DEV_H__ #include "drv_gpio.h" #include "agile_led.h" extern agile_led_t *led_r; extern agile_led_t *led_g; extern agile_led_t *led_y; extern agile_led_t *buzzer; #define LED_ON(x) agile_led_on(led_##x) #define LED_OFF(x) agile_led_off(led_##x) #define LED_TOGGLE(x) agile_led_toggle(led_##x) #define LED_START(x) agile_led_start(led_##x) #define BUZZER_ON(x) agile_led_on(x) #define BUZZER_OFF(x) agile_led_off(x) #define BUZZER_START(x) agile_led_start(x) #define LED_STOP(x) \ do \ { \ LED_OFF(x); \ agile_led_stop(led_##x); \ } while (0U) #define LED_CTRL(x, light_mode, loop_cnt) \ do \ { \ agile_led_set_light_mode(led_##x, light_mode, loop_cnt); \ } while (0U) #define BUZZER_STOP(x) \ do \ { \ BUZZER_OFF(x);\ agile_led_stop(x); \ } while (0U) #define BUZZER_CTRL(x, light_mode, loop_cnt) \ do \ { \ agile_led_set_light_mode(x, light_mode, loop_cnt); \ } while (0U) /************************预设的一些LED闪烁模式**************/ // 预热绿灯闪烁 #define GREEN_LED_PREAT \ do \ { \ LED_STOP(r); \ LED_STOP(y); \ LED_CTRL(g, "500,500", -1); \ LED_START(g); \ } while (0U) // 正常绿灯常亮 #define GREEN_LED_NORMAL \ do \ { \ LED_STOP(r); \ LED_STOP(y); \ agile_led_stop(led_g); \ LED_ON(g); \ } while (0U) // 故障状态 黄灯常亮 #define YELLOW_LED_FAULT \ do \ { \ LED_STOP(r); \ LED_STOP(g); \ LED_ON(y); \ } while (0U) // 报警状态 红灯闪烁 #define RED_LED_ALAEM \ do \ { \ LED_STOP(g); \ LED_STOP(y); \ LED_CTRL(r, "200,200", -1); \ LED_START(r); \ } while (0U) // 寿命到期状态 黄灯闪烁 #define YELLOW_LED_END_OF_LIFE \ do \ { \ LED_STOP(r); \ LED_STOP(g); \ LED_CTRL(y, "500,500", -1); \ LED_START(y); \ } while (0U) // 蜂鸣器响模式 #define BUZZER_CYCLE_500MS(x) \ do \ { \ BUZZER_CTRL(buzzer, "500,500", x); \ BUZZER_START(buzzer); \ } while (0U) #define BUZZER_CYCLE_1000MS(x) \ do \ { \ BUZZER_CTRL(buzzer, "1000,1000", x); \ BUZZER_START(buzzer); \ }while (0U) #define BUZZER_CYCLE_20000MS(x) \ do \ { \ BUZZER_CTRL(buzzer, "20000,200000", x); \ BUZZER_START(buzzer); \ } while (0U) #endif //!__BSP_LED_H__