Both_Way_Comm_SY8833/TP3310_Demo.si4project/Backup/led(2524).h

206 lines
7.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
******************************************************************************
*
* @file led.h
* @brief led dispaly module
*
*
* @version 1.0
* @date 2023/05/12 09:59:40
* @author Alex Xu
*
* Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd.
* All Rights Reserved
*
* History:
* Revision Date Author Desc
* 1.0.0 2023/07/12 Alex build this file
******************************************************************************
*/
#ifndef __LED_H__
#define __LED_H__
#include "define.h"
#ifdef LED_DISPLAY
#ifdef _DEBUG_LED
#define _DEBUG_LED_1
#define _DEBUG_LED_2
#endif
/******************************************************************************\
Macro definitions
\******************************************************************************/
sbit pin_LED_1 = P0^2;
sbit pin_LED_2 = P0^3;
sbit pin_LED_3 = P0^4;
#if 0
#define LED_1_CONFIG() do{ SFRADDR = P0_DRV; SFRDATA |= 0x03;SFRADDR = MFP_CTL0; SFRDATA &= 0xCF;}while(0) //P02
#define LED_2_CONFIG() do{ SFRADDR = P0_DRV; SFRDATA |= 0x08;SFRADDR = MFP_CTL0; SFRDATA &= 0x3F;}while(0) //P03
#define LED_3_CONFIG() do{ SFRADDR = P0_DRV; SFRDATA |= 0x20;SFRADDR = MFP_CTL1; SFRDATA &= 0xFC;}while(0) //P04
#endif
// LED端口定义
#define LEDR_ON() pin_LED_2 = 1 //LED_1_ON() p03
#define LEDR_OFF() pin_LED_2 = 0 //LED_1_OFF()
#define LEDR_TOG() pin_LED_2 = !pin_LED_2 //LED_1_RUN()
#define LEDG_ON() pin_LED_1 = 1 //LED_2_ON() p02
#define LEDG_OFF() pin_LED_1 = 0 //LED_2_OFF()
#define LEDG_TOG() pin_LED_1 = !pin_LED_1 //LED_2_RUN()
#define LEDB_ON() pin_LED_3 = 1 //LED_3_ON() p04
#define LEDB_OFF() pin_LED_3 = 0 //LED_3_OFF()
#define LEDB_TOG() pin_LED_3 = !pin_LED_3 //LED_3_RUN()
#define LED_PLUS_TIME 1 //LED闪烁最小时间周期单位ms
/******************************************************************************\
Typedef definitions
\******************************************************************************/
//LED名称重定义顺序和上方的宏定义保持一致
enum LED_ID
{
LED_R,
LED_G,
LED_B,
LED_ID_MAX
};
//LED工作状态
enum LED_STATE
{
LED_OFF,
LED_ON,
LED_FLASH,
LED_KEEP_FLASHING,
LED_BREATHING_LIGHT
};
//LED控制结构体
typedef struct{
uint8_t State[LED_ID_MAX];//LED 的工作状态
uint8_t Flash_Duty[LED_ID_MAX];//LED占空比即点亮时间
uint8_t Flash_Period[LED_ID_MAX];//LED周期
uint8_t Flash_Times[LED_ID_MAX];//闪烁次数
uint8_t Timer[LED_ID_MAX];//时间计数 1ms计数一次
}TS_LED_INFO;
/******************************************************************************\
Global variables and functions
\******************************************************************************/
/*
* 函数名称 : LED_Init
* 功能描述 : LED初始化
* 参 数 : NONE
* 返回值 : NONE
*/
/******************************************************************************/
extern void LED_Init(void);
/******************************************************************************/
/*
* 函数名称 : LED_Clr
* 功能描述 : 熄灭全部LED
* 参 数 : NONE
* 返回值 : NONE
*/
/******************************************************************************/
//extern void LED_Clr(void);
/******************************************************************************/
/*
* 函数名称 : LED_Clr
* 功能描述 : 熄灭全部LED
* 参 数 : NONE
* 返回值 : NONE
*/
/******************************************************************************/
extern void LED_Drv(void);
/******************************************************************************/
/*
* 函数名称 : LED_Set
* 功能描述 : LED工作方式设置
* 参 数 : LedIdID / State工作方式 / Duty:闪烁占空比(百分百1-100) / Period:闪烁周期(单位ms) / Times:闪烁次数
* 返回值 : NONE
*/
/******************************************************************************/
extern void LED_Set(uint8_t LedId,uint8_t State,uint8_t Period,uint8_t Times);
/******************************************************************************/
// 外部操作接口;Fre:闪烁周期ms;n:闪烁次数
#define LED_R_ON() LED_Set(LED_R, LED_ON, 0,0)
#define LED_R_OFF() LED_Set(LED_R, LED_OFF, 0,0)
#define LED_R_FLASH(Fre,n) LED_Set(LED_R, LED_FLASH, Fre,n)
#define LED_R_KEEP_FLASHING(Fre) LED_Set(LED_R, LED_KEEP_FLASHING, Fre,0)
#define LED_G_ON() LED_Set(LED_G, LED_ON, 0,0)
#define LED_G_OFF() LED_Set(LED_G, LED_OFF, 0,0)
#define LED_G_FLASH(Fre,n) LED_Set(LED_G, LED_FLASH, Fre,n)
#define LED_G_KEEP_FLASHING(Fre) LED_Set(LED_G, LED_KEEP_FLASHING, Fre,0)
#define LED_B_ON() LED_Set(LED_B, LED_ON, 0,0)
#define LED_B_OFF() LED_Set(LED_B, LED_OFF, 0,0)
#define LED_B_FLASH(Fre,n) LED_Set(LED_B, LED_FLASH, Fre,n)
#define LED_B_KEEP_FLASHING(Fre) LED_Set(LED_B, LED_KEEP_FLASHING, Fre,0)
#define LED_ALL_ON() do{LED_R_ON();LED_G_ON();LED_B_ON();}while(0)
#define LED_ALL_OFF() do{LED_R_OFF();LED_G_OFF();LED_B_OFF();}while(0)
//------------------------------------------------------------------------------
#endif
#ifdef BREATHING_LIGHT
extern bit Breathing_Light_On;
/*
* 函数名称 : LED_Breathing_Light
* 功能描述 : LED呼吸灯驱动需放在100us时间片中
* 参 数 : NONE
* 返回值 : NONE
*/
/******************************************************************************/
extern void LED_Breathing_Light(void);
/******************************************************************************/
#endif
#ifdef DISPLAY_LED_188
extern uint8_t g_188_Num;
#define PIN0_IN() do{SFRADDR = P0_OE;SFRDATA &= 0xFE;SFRADDR = P0_IE;SFRDATA |= 0x01;}while(0) //Set P00 Input Enable.设置输入功能前,需先关闭输出功能。
#define PIN1_IN() do{SFRADDR = P0_OE;SFRDATA &= 0xFD;SFRADDR = P0_IE;SFRDATA |= 0x02;}while(0) //Set P01 Input Enable.
#define PIN2_IN() do{SFRADDR = P0_OE;SFRDATA &= 0xFB;SFRADDR = P0_IE;SFRDATA |= 0x04;}while(0) //Set P02 Input Enable.
#define PIN3_IN() do{SFRADDR = P0_OE;SFRDATA &= 0xF7;SFRADDR = P0_IE;SFRDATA |= 0x08;}while(0) //Set P03 Input Enable.
#define PIN4_IN() do{SFRADDR = P0_OE;SFRDATA &= 0xEF;SFRADDR = P0_IE;SFRDATA |= 0x10;}while(0) //Set P04 Input Enable.
#define PIN0_L() do{SFRADDR = P0_OE;SFRDATA |= 0x01;P00 = 0;}while(0) //Set P00 output low Enable.
#define PIN1_L() do{SFRADDR = P0_OE;SFRDATA |= 0x02;P01 = 0;}while(0) //Set P01 output low Enable.
#define PIN2_L() do{SFRADDR = P0_OE;SFRDATA |= 0x04;P02 = 0;}while(0) //Set P02 output low Enable.
#define PIN3_L() do{SFRADDR = P0_OE;SFRDATA |= 0x08;P03 = 0;}while(0) //Set P03 output low Enable.
#define PIN4_L() do{SFRADDR = P0_OE;SFRDATA |= 0x10;P04 = 0;}while(0) //Set P04 output low Enable.
#define PIN0_H() do{SFRADDR = P0_OE;SFRDATA |= 0x01;P00 = 1;}while(0) //Set P00 output high Enable.
#define PIN1_H() do{SFRADDR = P0_OE;SFRDATA |= 0x02;P01 = 1;}while(0) //Set P01 output high Enable.
#define PIN2_H() do{SFRADDR = P0_OE;SFRDATA |= 0x04;P02 = 1;}while(0) //Set P02 output high Enable.
#define PIN3_H() do{SFRADDR = P0_OE;SFRDATA |= 0x08;P03 = 1;}while(0) //Set P03 output high Enable.
#define PIN4_H() do{SFRADDR = P0_OE;SFRDATA |= 0x10;P04 = 1;}while(0) //Set P04 output high Enable.
extern void LED_188_Init(void);
extern void Set_AllLed_Down(void);
extern void LED_188_Drive(uint8_t Num);
#endif
#endif