亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? task_time.c.bak

?? CC1000 Rf modem C codes for philips sLpc213X ARM MCU.
?? BAK
字號:

#include "config_GD61.h"
#include "include_GD61.h"
#include <stdio.h>

//////////////////////////////////////////////////////////////////////////////
TIMEACTION ActionTime[MAX_CONTROL_TABLE_NUM];

uint8 AutoLightCntMode;

uint8  MaxInputIICnt;
extern uint16 MaxInputLimitII;

extern CALENDAR CurrentTime;
extern uint16 TransferKKK;
extern uint16 ControlTime;

extern volatile char   TimerActSecTick;		// for timer_control function
extern volatile uint16 enTimerLightCnt;		// enable timer automatic function 
extern volatile uint16 CC1000ResetTimer;
extern volatile uint16 SysReadyTimer;
extern volatile uint16 MP_FailedmSecondCnt;	// for main power failed detector

extern uint16 ModuleAddress;				//module address
extern uint16 Pkg_SerialNum;				//serial number of package.
extern uint16 ActionValue;			//action value corresponding to action code.

//extern int32 CurInput_UU;
//extern int32 CurOutput_U;

//////////////////////////////////////////////////////////////////////////////

void CommandLightControl(uint16 ActValue);
void AutomaticLightControl(void);
void InitActTimer(void);
void TimerLigthScheduler(void);
void TimerReset(void);				////reset the system every day at HOUR:MIN

//////////////////////////////////////////////////////////////////////////////
// (Line_Num==PowerLine_ID)&&(DestinationAddr==ModuleAddress)
//////////////////////////////////////////////////////////////////////////////
//#define Light_toON	(0x20-1)				//0x1f
//#define Light_toOFF	(Light_toON-1)		//0x1e
//////////////////////////////////////////////////////////////////////////////
void CommandLightControl(uint16 ActValue)
{
char dbuffer[100];

//[1] directly control
		if(ActValue < Light_toOFF){

			LampStateAbs(ActValue);			// light control, control voltage adj level directly
			AutoVoltageFlag = DISABLE_FLAG;
			Uart0SendString("control Voltage directly.");
		}
//[2] turn light off
		else if(ActValue == Light_toOFF){

			LampStateAbs(Light_toOFF);			//
			AutoVoltageFlag  = DISABLE_FLAG;	//turn on, and set default voltage control to automatic mode
			Uart0SendString("turn light off.");
		}
//[3] turn light on
		else if(ActValue == Light_toON){
		
			if((StateValue&LIGHT_ON_FLG_BIT)!=LIGHT_ON_FLG_BIT){
				AutoVoltageFlag  = ENABLE_FLAG;	//turn on, and set default voltage control to automatic mode
				TargetVoltage 	 = START_TARGET_VOLTAGE;	//set starting voltage=200V.
				AutoVoltageTimer = AUTO_VOLTAGE_DEFAULT_TIME+(ModuleAddress % ACT_TIME_GROUP)-ACT_TIME_GROUP;

				PreToLightOn();					//preset the relay.
				LampStateAbs(Light_toON);

				sprintf(dbuffer,"Sets up TargetVoltage = %d,AutoVoltageTimer = %d,enable automatic control.",
				                         (TargetVoltage/10),AutoVoltageTimer);	Uart0SendString(dbuffer);
			}else{
				Uart0SendString("Light on now, cancle the command.");
			}
		}
//[4] automatically control
		else if(ActValue > Light_toON){

			AutoVoltageFlag  = ENABLE_FLAG;
			TargetVoltage 	 = ActValue;		//(3) automatic voltage control
//			AutoVoltageTimer = AUTO_VOLTAGE_DEFAULT_TIME+(ModuleAddress % ACT_TIME_GROUP)-ACT_TIME_GROUP;
			AutoVoltageTimer = 60;
			sprintf(dbuffer,"Sets up TargetVoltage = %d ,enable automatic control.",(TargetVoltage/10));
			Uart0SendString(dbuffer);
		}
//[5] unknowm control value
		else{
			Uart0SendString("cancel unsupported voltage control value");
		}
	}		

///////////////////////////////////////////////////////////////////////
void AutomaticLightControl(void)
{
int32 databuff;
int32 V_AdjustStep;
char  dbuffer[100];

	if((StateValue & LIGHT_ON_FLG_BIT)!=LIGHT_ON_FLG_BIT) 	return;	
//// the higest bit indicates light on/off state

	if((AutoVoltageFlag == ENABLE_FLAG) && (AutoVoltageTimer == 0)){
//// print info_1
		if(SysReadyTimer!=0){
			Uart0SendString("AutomaticLightControl");
			Uart0SendString("But don't get ready after powerUp.");
			AutoVoltageTimer=5;
			return;
		}

//// print info_2
#ifdef EN_MAIN_POWER_ALARM
//		if((IO0PIN&MPF_P0_07)==MPF_P0_07){	// level detecting mode
		if(MP_FailedmSecondCnt>=MAIN_POWER_FAILED_MSECOND){	//pulse detecting mode
			Uart0SendString("In Main_Power failed alarm state.");
////		return;
		}
#endif

		Uart0SendEnter();					// hint the current time firstly
//// print info_3
#ifdef EN_LOAD_LIMIT_PROTECT
		if((CurInput_II>MaxInputLimitII)&&(MaxInputLimitII>500)){
			sprintf(dbuffer,"Load current limit alarm: CurInput_II=%4d(mA), MaxInputLimitII=%4d(mA)", 
													   CurInput_II,         MaxInputLimitII);
			Uart0SendString(dbuffer);
		
			if(MaxInputIICnt>OVER_LOAD_TIMES){
				LampStateAbs(Light_toOFF);	Uart0SendString("Turn OFF load.");
				StateValue = StateValue|LOAD__ALARM_TYPE;
				return;
			}else{
				MaxInputIICnt++;
			}
		}else{
			MaxInputIICnt=0;
			StateValue = StateValue&(~LOAD__ALARM_TYPE);
		}
#endif

////		    
		V_AdjustStep	 = (CurInput_UU*TransferKKK)/2200;	// standard Voltage = 220V, *10V
		AutoVoltageTimer =  60;					// set the time for next control action

//// print info_4
		sprintf(dbuffer,"[!!] Current time: %4d.%2d.%2d.%2d.%2d.%2d",CurrentTime.xYEAR,CurrentTime.xMONTH,
		CurrentTime.xDOM,CurrentTime.xHOUR,CurrentTime.xMIN,CurrentTime.xSEC);	Uart0SendString(dbuffer);
		sprintf(dbuffer,"Auto Control: Input(V)=%4d, Output(V)=%4d, Target(V)=%4d, V_Step(V)=%4d, IntervalTime(S)=%3d.",
		   							   CurInput_UU,  CurOutput_U,   TargetVoltage, V_AdjustStep,  AutoVoltageTimer);
		Uart0SendString(dbuffer);

//// task get ready.
		switch(AutoLightCntMode){

		case vFromInPut_0:
		case vFromInPut_1:
//		case vFromInPut_2:

#ifdef EN_CLOSE_LOOP_CONTROL
			AutoLightCntMode++;			//change to Relative mode
#endif
			Uart0SendString("Open loop Mode.");
////
#ifdef U_MAIN_ADJUST_DECREASE
			databuff=(int16)CurInput_UU-(int16)TargetVoltage;	// adjust voltage in decreasing mode
#else
			databuff=(int16)TargetVoltage-(int16)CurInput_UU;	// adjust voltage in increasing mode
#endif

////// decreasing the output voltage
			if(databuff>=0){	// if positive
				if(databuff >= (V_AdjustStep>>1)){

#ifdef U_MAIN_ADJUST_DECREASE
					databuff= (databuff+(V_AdjustStep>>1)) / V_AdjustStep;
#else
					databuff= (databuff-(V_AdjustStep>>1)) / V_AdjustStep;
#endif
					if(databuff>Minus_vMAX){		// if Voltage too high, force -37.5V
						LampStateAbs(Minus_vMAX);	//this is the max negative adjust
					}else{							// if TransferKKK< xxxx < Minus_37V5, adjust voltage.
						LampStateAbs((uint16)databuff);
					}
				}else{								//databuff < TransferKKK
					sprintf(dbuffer,"AutomaticLightControl(1): Keep state = 0x%x",StateValue&0xff); 
					Uart0SendString(dbuffer);
				}
			}

////// increasing the output voltage
			else{						// if negative
				databuff = -databuff;	// change to positive firstly.
				if(databuff >= (V_AdjustStep>>1)){

					LampStateAbs(Minus_00V0);		//this is the max negative adjust

				}else{					//databuff < TransferKKK
					sprintf(dbuffer,"AutomaticLightControl(2): Keep state = 0x%x",StateValue&0xff); 
					Uart0SendString(dbuffer);
				}
			}
			
			break;

//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////

		AutoVoltageTimer =  ControlTime;					// set the time for next control action
		default:

			Uart0SendString("Close loop Mode.");
////
#ifdef U_MAIN_ADJUST_DECREASE
			databuff=(int16)CurOutput_U-(int16)TargetVoltage;	// adjust voltage in decreasing mode
#else
			databuff=(int16)TargetVoltage-(int16)CurOutput_U;	// adjust voltage in increasing mode
#endif

////// decreasing the output voltage
			if(databuff>=0){	// if positive
				if(databuff >= Voltage_Up){

#ifdef U_MAIN_ADJUST_DECREASE
					databuff= (databuff+(V_AdjustStep>>1)) / V_AdjustStep;
#else
					databuff= (databuff-(V_AdjustStep>>1)) / V_AdjustStep;
#endif
					if(databuff>2) 
					{
						LampStateRelative(-2);	//two step every time
						AutoVoltageTimer=60;
					}
					else LampStateRelative((int16)(-databuff));
					
				}else{										//databuff < TransferKKK
					sprintf(dbuffer,"AutomaticLightControl(3): Keep state = 0x%x",StateValue&0xff); 
					Uart0SendString(dbuffer);
				}
			}
			
////// increasing the output voltage
			else{	// if negative 
				databuff     = -databuff;					// change to positive firstly.
				if(databuff >= Voltage_Down){			// 

#ifdef U_MAIN_ADJUST_DECREASE
					databuff= (databuff-(V_AdjustStep>>1)) / V_AdjustStep;
#else
					databuff= (databuff+(V_AdjustStep>>1)) / V_AdjustStep;
#endif					
					if(databuff>1) 
					{
						LampStateRelative(2);	//two step every time
						AutoVoltageTimer=60;
					}
					else LampStateRelative((int16)databuff);
					
				}else{										//databuff < TransferKKK
					sprintf(dbuffer,"AutomaticLightControl(4): Keep state = 0x%x",StateValue&0xff); 
					Uart0SendString(dbuffer);
				}
			}
			
			break;
		}	//switch
	}		//if
}			//

/////////////////////////////////////////////////////////////////////
//turnn off all the time control task
//status:
void InitActTimer(void)
{
char i;

	for(i=0;i<MAX_CONTROL_TABLE_NUM;i++)
	{
		ActionTime[i].ActionFlag 	= ENABLE_FLAG;
		ActionTime[i].xHOUR		 	= (uint8)(~NOTHING_TO_DO);
		ActionTime[i].xMIN		 	= (uint8)(~NOTHING_TO_DO);
		ActionTime[i].Action_Value	= NOTHING_TO_DO;	//nothing_to_do=0x00
	}
}

///////////////////////////////////////////////////////////////////
void TimerLigthScheduler(void)
{
char i;
char dbuffer[100];

////
  if(TimerActSecTick==1){			//check time second tick
	 TimerActSecTick=0;				//clear the second tick semaphore
////
	for(i=0;i<MAX_CONTROL_TABLE_NUM;i++){
	  if(ActionTime[i].ActionFlag  == ENABLE_FLAG){	//working state and second tick

		  if((ActionTime[i].xHOUR  == DISABLE_FLAG) || (ActionTime[i].xHOUR	== CurrentTime.xHOUR)){
			if((ActionTime[i].xMIN == DISABLE_FLAG) || (ActionTime[i].xMIN	== CurrentTime.xMIN)){
			  if( CurrentTime.xSEC == 0x00){
////
				Uart0SendEnter();
				Uart0SendString("TimerLigthScheduler()");
			    sprintf(dbuffer,"[!!] Current time: %4d.%2d.%2d.%2d.%2d.%2d",CurrentTime.xYEAR,CurrentTime.xMONTH,
			    CurrentTime.xDOM,CurrentTime.xHOUR,CurrentTime.xMIN,CurrentTime.xSEC);	Uart0SendString(dbuffer);
				CommandLightControl(ActionTime[i].Action_Value);
		      }
		    }
    	  }
	  }
	}
  }
}

//////////////////////////////////////////////////////////////////////
void TimerReset(void)		////reset the system every day at HOUR:MIN
{
char i;

//// CC1000 reset timer action
	if(CC1000ResetTimer == 0){
		CC1000ResetTimer = CC1000_TIMER_RESET_TIME;
		Uart0SendEnter();
		Uart0SendString("WatchDog re_initialize CC1000");
		RF_StartCC1000();
	}

////
	if(enTimerLightCnt==0){
		enTimerLightCnt = EN_TIMER_SCHEDULER_TIME;	// reset the timer_control time		
		Uart0SendString("WatchDog enable TimerLigthScheduler");
		for(i=0;i<MAX_CONTROL_TABLE_NUM;i++){		// maximum sub_line is 3
			ActionTime[i].ActionFlag=ENABLE_FLAG;
		}
	}

//// system reset timer action 	
	if(CurrentTime.xHOUR==WATCHDOG_RESET_SYS_HOUR){
		if(CurrentTime.xMIN==WATCHDOG_RESET_SYS_MIN){
//		    if((CurrentTime.xSEC & 0xfe) == 0x00){
		 	if( CurrentTime.xSEC         == 0x00){
				Uart0SendString("WatchDog  Reset System");
				RF_SendingOver();	Uart0SendingOver();
				WatchDogStart(20);	//20 ms Watchdog reset time
				while(1);			//wait for watchdog reset							
			}

		}
	}
}

////////////////////////////////////////////////////////////////////
//End Of File
////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品色综合| 精品日韩在线一区| 综合婷婷亚洲小说| 国产麻豆欧美日韩一区| 欧美一区二区福利在线| 日本女人一区二区三区| 欧美一级在线观看| 日本在线播放一区二区三区| 欧美片网站yy| 天天色天天操综合| 日韩一区二区三区在线视频| 免费观看成人av| 精品乱码亚洲一区二区不卡| 美国毛片一区二区三区| 日韩一级高清毛片| 精品一区二区精品| 久久久夜色精品亚洲| 国产一区二区精品在线观看| 国产欧美一区二区精品性色| 国产成人av影院| 中文字幕av在线一区二区三区| 国产91精品免费| 国产精品欧美综合在线| caoporen国产精品视频| 亚洲欧美另类图片小说| 欧美亚洲动漫精品| 午夜激情综合网| 日韩欧美一二区| 国产毛片精品视频| 国产精品无遮挡| 色偷偷久久人人79超碰人人澡| 亚洲国产一区二区三区青草影视| 欧美性极品少妇| 青青草国产成人av片免费| 精品精品国产高清a毛片牛牛| 国产自产2019最新不卡| 中文字幕不卡在线观看| 色94色欧美sute亚洲线路一ni | 久久综合狠狠综合久久激情| 国产精品自产自拍| 国产精品午夜久久| 欧美性欧美巨大黑白大战| 日本aⅴ精品一区二区三区 | 国产精品麻豆久久久| 在线亚洲一区二区| 婷婷中文字幕一区三区| 337p日本欧洲亚洲大胆精品| 成人高清免费在线播放| 亚洲国产成人va在线观看天堂| 欧美一区二区久久久| 大胆欧美人体老妇| 亚洲国产精品影院| 精品福利av导航| 91亚洲精品久久久蜜桃| 日韩 欧美一区二区三区| 国产女主播视频一区二区| 一本大道久久精品懂色aⅴ| 青青草97国产精品免费观看无弹窗版| 国产亚洲成av人在线观看导航 | 欧美一级在线免费| 成人免费视频国产在线观看| 亚洲成人av资源| 久久久亚洲高清| 色婷婷综合激情| 精品在线亚洲视频| 亚洲精品少妇30p| 日韩精品一区二区三区在线 | 欧美成人免费网站| av色综合久久天堂av综合| 午夜久久电影网| 中文字幕欧美国产| 欧美久久久久久久久久| 粉嫩一区二区三区在线看| 亚洲成人三级小说| 中国av一区二区三区| 91精品在线麻豆| 成人av网站在线| 免费观看成人av| 亚洲激情五月婷婷| 国产亚洲一区二区在线观看| 欧美午夜精品免费| 从欧美一区二区三区| 蜜臀av在线播放一区二区三区| 成人欧美一区二区三区小说| 日韩精品一区二区三区在线播放 | 国产精品91一区二区| 五月婷婷综合在线| 亚洲欧美自拍偷拍| 精品卡一卡二卡三卡四在线| 欧美色电影在线| 不卡视频免费播放| 国产综合久久久久久鬼色| 丝袜国产日韩另类美女| 国产精品乱码久久久久久| 日韩欧美一级二级三级| 欧美视频三区在线播放| 不卡视频在线看| 国产精品538一区二区在线| 日韩精品国产欧美| 一区二区三区四区精品在线视频 | 国产欧美日韩另类一区| 日韩欧美自拍偷拍| 欧美综合色免费| 北条麻妃一区二区三区| 国产一区二区三区日韩| 日韩av电影免费观看高清完整版 | 日韩精品一区二区三区视频播放 | 欧美成人r级一区二区三区| 欧美午夜精品久久久久久孕妇 | 日本久久一区二区三区| 成人一级黄色片| 国产一区二区不卡| 日本成人中文字幕在线视频 | 国产精品久久久久久久久果冻传媒| 日韩精品中文字幕一区| 91精品蜜臀在线一区尤物| 欧美性受xxxx| 欧美在线视频日韩| 色综合一区二区| 91网站最新地址| 不卡av在线网| 成人av在线一区二区三区| 国产二区国产一区在线观看| 韩国欧美国产一区| 久久电影国产免费久久电影| 人人精品人人爱| 蜜臀久久99精品久久久久宅男| 午夜精品福利一区二区三区蜜桃| 亚洲成人精品在线观看| 亚洲一区二区中文在线| 一区二区三区高清| 亚洲精品高清在线| 一区二区免费视频| 一区二区久久久久| 亚洲综合区在线| 亚洲一区二区三区爽爽爽爽爽 | 日韩高清一区在线| 丝袜美腿成人在线| 免费在线观看成人| 久久精品99国产国产精| 美女一区二区视频| 九一久久久久久| 国产麻豆午夜三级精品| 国产激情精品久久久第一区二区| 国产精品资源站在线| 成人免费视频caoporn| heyzo一本久久综合| 91视频一区二区| 欧美亚洲一区二区在线| 在线播放国产精品二区一二区四区 | 美女在线视频一区| 国产一区免费电影| 成人av综合一区| 91网站最新地址| 欧美三级电影在线观看| 67194成人在线观看| 2023国产精华国产精品| 国产欧美一区二区三区网站| 最近日韩中文字幕| 亚洲成av人片| 老司机一区二区| 风间由美一区二区三区在线观看 | 激情小说欧美图片| 国产成人av一区二区三区在线观看| 不卡av免费在线观看| 欧洲激情一区二区| 日韩午夜中文字幕| 国产喷白浆一区二区三区| 亚洲欧洲av一区二区三区久久| 一区二区欧美国产| 麻豆中文一区二区| 成人性生交大片免费看中文| 91久久人澡人人添人人爽欧美| 欧美高清精品3d| 国产日韩在线不卡| 国产精品久久久久久久久久免费看| 亚洲一区二区三区四区在线观看 | 精一区二区三区| 97精品久久久久中文字幕| 欧美老肥妇做.爰bbww| 精品国产污污免费网站入口| 国产精品午夜在线| 丝袜亚洲精品中文字幕一区| 国产一区二区三区av电影| 色吊一区二区三区| 精品福利一二区| 一区二区三区日韩精品视频| 麻豆精品国产91久久久久久| 成+人+亚洲+综合天堂| 欧美精品日韩综合在线| 久久久久久久精| 亚洲一区在线观看视频| 国产一区二区福利视频| 欧美手机在线视频| 久久精品视频一区二区三区| 亚洲国产精品综合小说图片区| 国产成人精品在线看| 欧美精品在欧美一区二区少妇| 国产欧美一区在线| 日本中文字幕不卡|