/********************************** (C) COPYRIGHT ******************************* * File Name : LED.h * Author : WCH * Version : V1.0 * Date : 2016/04/12 * Description : ********************************************************************************* * Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd. * Attention: This software (modified or not) and binary are used for * microcontroller manufactured by Nanjing Qinheng Microelectronics. *******************************************************************************/ /******************************************************************************/ #ifndef __LED_H #define __LED_H #ifdef __cplusplus extern "C" { #endif /********************************************************************* * CONSTANTS */ /* LEDS - The LED number is the same as the bit position */ #define HAL_LED_1 0x01 #define HAL_LED_2 0x02 #define HAL_LED_3 0x04 #define HAL_LED_4 0x08 #define HAL_LED_ALL (HAL_LED_1 | HAL_LED_2 | HAL_LED_3 | HAL_LED_4) /* Modes */ #define HAL_LED_MODE_OFF 0x00 #define HAL_LED_MODE_ON 0x01 #define HAL_LED_MODE_BLINK 0x02 #define HAL_LED_MODE_FLASH 0x04 #define HAL_LED_MODE_TOGGLE 0x08 /* Defaults */ #define HAL_LED_DEFAULT_MAX_LEDS 4 #define HAL_LED_DEFAULT_DUTY_CYCLE 5 #define HAL_LED_DEFAULT_FLASH_COUNT 50 #define HAL_LED_DEFAULT_FLASH_TIME 1000 /********************************************************************* * TYPEDEFS */ /* 连接一个LED用于监控演示程序的进度,低电平LED亮 */ /* 1 - LED */ #define LED1_BV BV(15) #define LED2_BV #define LED3_BV #define LED1_OUT (R32_PB_OUT) #define LED2_OUT 0 #define LED3_OUT 0 #define LED4_OUT 0 #define LED1_DDR (R32_PB_DIR |= LED1_BV) #define LED2_DDR 0 #define LED3_DDR 0 #define HAL_TURN_OFF_LED1() (LED1_OUT |= LED1_BV) #define HAL_TURN_OFF_LED2() #define HAL_TURN_OFF_LED3() #define HAL_TURN_OFF_LED4() #define HAL_TURN_ON_LED1() (LED1_OUT &= (~LED1_BV)) #define HAL_TURN_ON_LED2() #define HAL_TURN_ON_LED3() #define HAL_TURN_ON_LED4() #define HAL_STATE_LED1() 0 #define HAL_STATE_LED2() 0 #define HAL_STATE_LED3() 0 #define HAL_STATE_LED4() 0 /********************************************************************* * GLOBAL VARIABLES */ /** * @brief Initialize LED Service. */ void HAL_LedInit(void); /** * @brief update time LED Service. */ void HalLedUpdate(void); /** * @brief Turn ON/OFF/TOGGLE given LEDs * * @param led - bit mask value of leds to be turned ON/OFF/TOGGLE * @param mode - BLINK, FLASH, TOGGLE, ON, OFF */ extern uint8_t HalLedSet(uint8_t led, uint8_t mode); /** * @brief Blink the leds * * @param led - bit mask value of leds to be turned ON/OFF/TOGGLE * @param numBlinks - number of blinks * @param percent - the percentage in each period where the led will be on * @param period - length of each cycle in milliseconds */ extern void HalLedBlink(uint8_t leds, uint8_t cnt, uint8_t duty, uint16_t time); /** * @brief Put LEDs in sleep state - store current values */ extern void HalLedEnterSleep(void); /** * @brief Retore LEDs from sleep state */ extern void HalLedExitSleep(void); /** * @brief Return LED state */ extern uint8_t HalLedGetState(void); /********************************************************************* *********************************************************************/ #ifdef __cplusplus } #endif #endif