135 lines
3.7 KiB
C
135 lines
3.7 KiB
C
/********************************** (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
|