//
//
/****************************************************************************************
** 文件名称: Led.c
** 功能描述: 
** 参    数: None
** 返 回 值: None
** 作　  者: 汪仁海QQ527148813
** 日  　期: 2013年4月23日
**---------------------------------------------------------------------------------------
** 修 改 人:
** 日　  期:
**---------------------------------------------------------------------------------------
*****************************************************************************************/ 

#ifndef __LED_C
#define __LED_C

#ifdef __cplusplus
 extern "C" {
#endif	 

#include "led.h"

u8 LED_time1;	//指示灯工作计数
	 
u8 LED_Dat[9];//刷屏用的数据	 
u8 LED_DatSp;//刷屏位置
u8 LED_DatUp;//数值更新标记法
u16 LED_Dat_A;//显示的数据
u16 LED_Dat_B;//显示的数据
	 
u8 LED_time;	//	
u8 num;//测试用	
	 
//LED相关初始化
void LED_Init(void)
{
	LED_OFF_1();	//led1灭
	LED_OFF_2();	//led2灭
	LED_OFF_3();	//led3灭

	LED_time=0;
	LED_time1=0;	//指示灯工作计数	
	LED_DatUp=1;//数值更新标记法
	LED_Dat_A=1234;//显示的数据
	LED_Dat_B=5678;//显示的数据
	
	num=0;
	//亮一个灯
	LED_OFF_1();	//led1	
}
void LED_ON_1(void)	//led1亮
{
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
}
void LED_OFF_1(void)//led1灭
{
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
}
void LED_Toggle_1(void)//翻转LED
{
//	HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
}

void LED_ON_2(void)	//led2亮
{
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);
}
void LED_OFF_2(void)	//led2灭
{
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);
}
void LED_Toggle_2(void)//翻转LED
{
//	HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_4);
	
}

void LED_ON_3(void)	//led3亮
{
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);
}
void LED_OFF_3(void)	//led3灭
{
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_SET);
//	HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,GPIO_PIN_RESET);
}
void LED_Toggle_3(void)//翻转LED
{	
	
}

void LED_Handle(void)//LED数据处理
{

	
}

void LED_SetData(u8 num)	//数码显示
{
	switch (num)
  {
  	case 0://0
			LED_a_ON;
//			LED_a_OFF;	 
			LED_b_ON;
//			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
			LED_e_ON;
//			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
//			LED_g_ON;
			LED_g_OFF;
  		break;
  	case 1://1
//			LED_a_ON;
			LED_a_OFF;	 
			LED_b_ON;
//			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
//			LED_d_ON;
			LED_d_OFF;		 
//			LED_e_ON;
			LED_e_OFF;	
//			LED_f_ON;
			LED_f_OFF;
//			LED_g_ON;
			LED_g_OFF;
  		break;
  	case 2://2
			LED_a_ON;
//			LED_a_OFF;	 
			LED_b_ON;
//			LED_b_OFF;		 
//			LED_c_ON;
			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
			LED_e_ON;
//			LED_e_OFF;	
//			LED_f_ON;
			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 3://3
			LED_a_ON;
//			LED_a_OFF;	 
			LED_b_ON;
//			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
//			LED_e_ON;
			LED_e_OFF;	
//			LED_f_ON;
			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 4://4
//			LED_a_ON;
			LED_a_OFF;	 
			LED_b_ON;
//			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
//			LED_d_ON;
			LED_d_OFF;		 
//			LED_e_ON;
			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 5://5
			LED_a_ON;
//			LED_a_OFF;	 
//			LED_b_ON;
			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
//			LED_e_ON;
			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 6://6
			LED_a_ON;
//			LED_a_OFF;	 
//			LED_b_ON;
			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
			LED_e_ON;
//			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 7://7
			LED_a_ON;
//			LED_a_OFF;	 
			LED_b_ON;
//			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
//			LED_d_ON;
			LED_d_OFF;		 
//			LED_e_ON;
			LED_e_OFF;	
//			LED_f_ON;
			LED_f_OFF;
//			LED_g_ON;
			LED_g_OFF;
  		break;
  	case 8://8
			LED_a_ON;
//			LED_a_OFF;	 
			LED_b_ON;
//			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
			LED_e_ON;
//			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 9://9
			LED_a_ON;
//			LED_a_OFF;	 
			LED_b_ON;
//			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
//			LED_e_ON;
			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 10://A
			LED_a_ON;
//			LED_a_OFF;	 
			LED_b_ON;
//			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
//			LED_d_ON;
			LED_d_OFF;		 
			LED_e_ON;
//			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 11://b
//			LED_a_ON;
			LED_a_OFF;	 
//			LED_b_ON;
			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
			LED_e_ON;
//			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 12://C
			LED_a_ON;
//			LED_a_OFF;	 
//			LED_b_ON;
			LED_b_OFF;		 
//			LED_c_ON;
			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
			LED_e_ON;
//			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
//			LED_g_ON;
			LED_g_OFF;
  		break;
  	case 13://d
//			LED_a_ON;
			LED_a_OFF;	 
			LED_b_ON;
//			LED_b_OFF;		 
			LED_c_ON;
//			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
			LED_e_ON;
//			LED_e_OFF;	
//			LED_f_ON;
			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 14://E
			LED_a_ON;
//			LED_a_OFF;	 
//			LED_b_ON;
			LED_b_OFF;		 
//			LED_c_ON;
			LED_c_OFF;	 
			LED_d_ON;
//			LED_d_OFF;		 
			LED_e_ON;
//			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	case 15://F
			LED_a_ON;
//			LED_a_OFF;	 
//			LED_b_ON;
			LED_b_OFF;		 
//			LED_c_ON;
			LED_c_OFF;	 
//			LED_d_ON;
			LED_d_OFF;		 
			LED_e_ON;
//			LED_e_OFF;	
			LED_f_ON;
//			LED_f_OFF;
			LED_g_ON;
//			LED_g_OFF;
  		break;
  	default:
//			LED_a_ON;
			LED_a_OFF;	 
//			LED_b_ON;
			LED_b_OFF;		 
//			LED_c_ON;
			LED_c_OFF;	 
//			LED_d_ON;
			LED_d_OFF;		 
//			LED_e_ON;
			LED_e_OFF;	
//			LED_f_ON;
			LED_f_OFF;
//			LED_g_ON;
			LED_g_OFF;
  		break;
  }	
}

void LED_SetDIGx(u8 num)	//数码位显示
{
	switch (num)
  {
  	case 1://1
//			LED_BIG1_OFF;
			LED_BIG2_OFF;
			LED_BIG3_OFF;
			LED_BIG4_OFF;
			LED_BIG5_OFF;
			LED_BIG6_OFF;
			LED_BIG7_OFF;
			LED_BIG8_OFF;
			LED_BIG1_ON;
  		break;
		case 2://2
			LED_BIG1_OFF;
//			LED_BIG2_OFF;
			LED_BIG3_OFF;
			LED_BIG4_OFF;
			LED_BIG5_OFF;
			LED_BIG6_OFF;
			LED_BIG7_OFF;
			LED_BIG8_OFF;
			LED_BIG2_ON;
  		break;
		case 3://3
			LED_BIG1_OFF;
			LED_BIG2_OFF;
//			LED_BIG3_OFF;
			LED_BIG4_OFF;
			LED_BIG5_OFF;
			LED_BIG6_OFF;
			LED_BIG7_OFF;
			LED_BIG8_OFF;
			LED_BIG3_ON;
  		break;
		case 4://4
			LED_BIG1_OFF;
			LED_BIG2_OFF;
			LED_BIG3_OFF;
//			LED_BIG4_OFF;
			LED_BIG5_OFF;
			LED_BIG6_OFF;
			LED_BIG7_OFF;
			LED_BIG8_OFF;
			LED_BIG4_ON;
  		break;
		case 5://5
			LED_BIG1_OFF;
			LED_BIG2_OFF;
			LED_BIG3_OFF;
			LED_BIG4_OFF;
//			LED_BIG5_OFF;
			LED_BIG6_OFF;
			LED_BIG7_OFF;
			LED_BIG8_OFF;
			LED_BIG5_ON;
  		break;
		case 6://6
			LED_BIG1_OFF;
			LED_BIG2_OFF;
			LED_BIG3_OFF;
			LED_BIG4_OFF;
			LED_BIG5_OFF;
//			LED_BIG6_OFF;
			LED_BIG7_OFF;
			LED_BIG8_OFF;
			LED_BIG6_ON;
  		break;
		case 7://7
			LED_BIG1_OFF;
			LED_BIG2_OFF;
			LED_BIG3_OFF;
			LED_BIG4_OFF;
			LED_BIG5_OFF;
			LED_BIG6_OFF;
//			LED_BIG7_OFF;
			LED_BIG8_OFF;
			LED_BIG7_ON;
  		break;
		case 8://8
			LED_BIG1_OFF;
			LED_BIG2_OFF;
			LED_BIG3_OFF;
			LED_BIG4_OFF;
			LED_BIG5_OFF;
			LED_BIG6_OFF;
			LED_BIG7_OFF;
//			LED_BIG8_OFF;
			LED_BIG8_ON;
  		break;
		  	default:
			LED_BIG1_OFF;
			LED_BIG2_OFF;
			LED_BIG3_OFF;
			LED_BIG4_OFF;
			LED_BIG5_OFF;
			LED_BIG6_OFF;
			LED_BIG7_OFF;
			LED_BIG8_OFF;
			break;
  }	
}

void LED_DataHandle(void)	//数码显示数据处理
{
	//数码扫描位置
	if(LED_DatSp<8)
		LED_DatSp++;//刷屏位置
	else
		LED_DatSp=1;

	//数值显示
	LED_SetData(LED_Dat[LED_DatSp]);	//数码显示
	LED_SetDIGx(LED_DatSp);	//数码位显示
	
	//小数点显示
	if((LED_DatSp==2)|(LED_DatSp==5))
		LED_dp_ON;
	else
		LED_dp_OFF;
	
	//显示区数据更新
	if(LED_DatUp==1)//数值更新标记法
	{
		LED_DatUp=0;//数值更新标记法
		
		LED_Dat[1]=(LED_Dat_A/1000)%10;//显示的数据
		LED_Dat[2]=(LED_Dat_A/100)%10;//显示的数据
		LED_Dat[3]=(LED_Dat_A/10)%10;//显示的数据
		LED_Dat[4]=(LED_Dat_A/1)%10;//显示的数据
		
		LED_Dat[5]=(LED_Dat_B/1000)%10;//显示的数据
		LED_Dat[6]=(LED_Dat_B/100)%10;//显示的数据
		LED_Dat[7]=(LED_Dat_B/10)%10;//显示的数据
		LED_Dat[8]=(LED_Dat_B/1)%10;//显示的数据
	}
}

#ifdef __cplusplus
}
#endif
#endif /*__LED_C */

