SHOW.c 4.08 KB
#include "SHOW.h"
void SetAlarm(int Alarmdata)
{
	agv.Public.Error_Flag |= Alarmdata;
}

void Reset_Alarm(int Alarmdata)
{
	agv.Public.Error_Flag &= ~Alarmdata;
}

bool Nsecend(u16 flicktime)
{
	static int LastTime = 0;
	static bool LEDState;
	if(agv.Public.SystemTime - LastTime > flicktime)
	{
		LastTime = agv.Public.SystemTime;
		LEDState = !LEDState;
	}
	return LEDState;
}

void LED_color(uint8_t color, u16 flicker)
{
	color = flicker > 0 ? color*Nsecend(flicker) : color;
	switch (color)
	{
	case 0://#define LED_close 0
		Y1(!LED_ON);//LED_RED关闭
		Y2(!LED_ON);//LED_GREEN
		Y3(!LED_ON);
		break;
	case 1://#define LED_green 1绿色
		Y1(!LED_ON);//LED_RED
		Y2(LED_ON);//LED_GREEN
		Y3(!LED_ON); //LED_YELLOW
		break;
	case 2://#define  Blue 2黄色
		Y1(LED_ON);//LED_RED
		Y2(!LED_ON);//LED_GREEN
		Y3(!LED_ON); //LED_YELLOW
		break;
	case 3://#define LED_red 3红色
		Y1(!LED_ON);//LED_RED
		Y2(!LED_ON);//LED_GREEN
		Y3(LED_ON); //LED_YELLOW
		break;
	case 4:         //白色
		Y1(LED_ON);//LED_RED
		Y2(LED_ON);//LED_GREEN
		Y3(LED_ON); //LED_YELLOW
		break;
	case 5:         //紫色
		Y1(LED_ON);//LED_RED
		Y2(!LED_ON);//LED_GREEN
		Y3(LED_ON); //LED_YELLOW
		break;
	case 6:        //黄色
		Y1(LED_ON);//LED_RED
		Y2(LED_ON);//LED_GREEN
		Y3(!LED_ON);//LED_YELLOW
		break;
	case 7:       //浅蓝
		Y1(!LED_ON);//LED_RED
		Y2(LED_ON);//LED_GREEN
		Y3(LED_ON); //LED_YELLOW
		break;
	default://#define LED_close
		Y1(!LED_ON);//LED_RED
		Y2(!LED_ON);//LED_GREEN
		Y3(!LED_ON); //LED_YELLOW
		break;
	}
}


void Laser_Run(u8 Data)
{
	switch (Data)//北洋激光对应25号区域
	{
		case 3://最大  63
			Y22(!LaserOnSig);
			Y23(!LaserOnSig);
			Y24(!LaserOnSig);
			break;
		case 2://中等  62
			Y22(LaserOnSig);
			Y23(!LaserOnSig);
			Y24(!LaserOnSig);
			break;
		case 1://最小  61
			Y22(!LaserOnSig);
			Y23(LaserOnSig);
			Y24(!LaserOnSig);
			break;
		case 0:
			Y22(!LaserOnSig);
			Y23(!LaserOnSig);
			Y24(LaserOnSig);
			break;
		case 4:
			Y22(LaserOnSig);
			Y23(LaserOnSig);
			Y24(!LaserOnSig);
			break;
		case 5:
			Y22(!LaserOnSig);
			Y23(LaserOnSig);
			Y24(!LaserOnSig);
			break;
		case 6:
			Y22(LaserOnSig);
			Y23(!LaserOnSig);
			Y24(!LaserOnSig);
			break;
		case 7:
			Y22(!LaserOnSig);
			Y23(!LaserOnSig);
			Y24(!LaserOnSig);
			break;
	case 8://56最大
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 9:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 10:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 11:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 12:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 13:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 14:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 15:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 16:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 17:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 18:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 19:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 20:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 21:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 22:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 23:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 24:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 25:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 26:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 27:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(LaserOnSig);
		break;
	case 28:
		Y22(LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 29:
		Y22(!LaserOnSig);
		Y23(LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 30:
		Y22(LaserOnSig);
		Y23(!LaserOnSig);
		Y24(!LaserOnSig);
		break;
	case 31:
		Y22(!LaserOnSig);
		Y23(!LaserOnSig);
		Y24(!LaserOnSig);
		break;
	default:
		break;
	}
}