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

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

?? drv_calendar.c

?? CC1000 Rf modem C codes for philips sLpc213X ARM MCU.
?? C
字號:
#include "config_GD61.h"
#include "include_GD61.h"
#include <stdio.h>

volatile CALENDAR CurrentTime;
volatile CALENDAR SettingTime;
////////////////////////////////////////////////////////////////////////

volatile char TimerActSecTick	   = 0;	// for timer_control function
volatile char HeartBeetTimeSecTick = 0;	// for display of time


volatile char LED_Counter=0;


volatile char 	RunningLED_Cnt=0;
volatile uint8  TestSecondTick=0;
volatile uint16 enTimerLightCnt;		//decrease 1 every second
volatile uint16 PW_AlarmEnTimer;
volatile uint16 LD_AlarmEnTimer;
volatile uint16 CC1000ResetTimer;		//CC1000 reset timer
volatile uint16 SysReadyTimer;
volatile uint16 OutReadyTimer;
volatile uint16 ADC_ChannelTimer;
volatile uint16 LD_AlarmCounter;
volatile uint16 PW_AlarmCounter;


volatile uint32 times_time0;
volatile uint32 datas_time0;

extern ROUTETASK routeTask[MAX_ROUTE_TASK_NUM];
extern ROUTETASK relayErrorTask[MAX_ROUTE_TASK_NUM];
extern uint16 	 ModuleAddress;			//=0x5555;	//module address.

extern volatile uint16 RTC_Failed_Time;   //3000ms
extern volatile uint16 Channel_Max_Time;

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

void __irq RTC_InterruptServing(void);
void ReadDateTime(void);
void Start_RTC(void);
void SettingRTC (CALENDAR Ctime);
void SetDefaultRTC(void);
void RTC_Time0_Sencond(void);

///////////////////////////////////////////////////////////////////////
void RTC_Time0_Sencond(void)
{
	
	uint8 i;

	ReadDateTime();
	CurrentTime.xSEC++;
	if(CurrentTime.xSEC>59)
	{
		CurrentTime.xSEC=0;
		CurrentTime.xMIN++;
		if(CurrentTime.xMIN>59)
		{
			CurrentTime.xMIN=0;
			CurrentTime.xHOUR++;
			if(CurrentTime.xHOUR>23)
			{
				CurrentTime.xHOUR=0;
				CurrentTime.xDOM++;
				if(CurrentTime.xDOM>30)
				CurrentTime.xDOM=1;
			}
		}
		
	}
	SettingRTC(CurrentTime);
	
	TimerActSecTick     =1;		//for timer_control function
	HeartBeetTimeSecTick=1;		//for display of time


	LED_Counter++;
	if(LED_Counter & 0x01 == 0x01){	IO1CLR = LED4;}	// LED1點亮
	else						  {	IO1SET = LED4;}	// LED1點亮


	RunningLED_Cnt++;
	if(RunningLED_Cnt & 0x01 == 0x01){	IO1CLR = LED_P1_21;}	// power LED點亮
	else							 {	IO1SET = LED_P1_21;}	// power LED點亮

////
	for(i=0;i<MAX_ROUTE_TASK_NUM;i++){					//
		if((routeTask[i].activityFlag==ENABLE_FLAG)&&
		   (routeTask[i].secondTimer!=0)){
			routeTask[i].secondTimer--;
		}
#ifdef RP_RELAY_ERROR
		else if((routeTask[i].waittingResponse==ENABLE_FLAG)&&
				(routeTask[i].secondTimer!=0xff)){
			routeTask[i].secondTimer++;
		}
#endif		
	}

////
#ifdef RP_RELAY_ERROR
	for(i=0;i<MAX_ROUTE_TASK_NUM;i++){					//
		if((relayErrorTask[i].activityFlag==ENABLE_FLAG)&&
		   (relayErrorTask[i].secondTimer!=0)){
			relayErrorTask[i].secondTimer--;
		}
		else if((relayErrorTask[i].waittingResponse==ENABLE_FLAG)&&
				(relayErrorTask[i].secondTimer!=0xff)){
			relayErrorTask[i].secondTimer++;
		}
	}
#endif
////
	if(enTimerLightCnt!=0){
		enTimerLightCnt--;			// decrease 1 every second.
	}

////	
	if(AutoVoltageTimer!=0){
		AutoVoltageTimer--;			//decrease 1 every second
	}

////	
	if(PW_AlarmEnTimer!=0){			//decrease 1 every second
		PW_AlarmEnTimer--;				//for alarm system
	}

	if(LD_AlarmEnTimer!=0){			//decrease 1 every second
		LD_AlarmEnTimer--;				//for alarm system
	}
	
////
	if(CC1000ResetTimer!=0){		//decrease 1 every second
		CC1000ResetTimer--;
	}

////
	if(SysReadyTimer!=0){			//decrease 1 every second
		SysReadyTimer--;
	}

	if(OutReadyTimer!=0){			//decrease 1 every second
		OutReadyTimer--;
	}

	if(TestSecondTick!=0){			//decrease 1 every second
		TestSecondTick--;
	}
	
////
	ADC_ChannelTimer++;
	if(ADC_ChannelTimer>=Channel_Max_Time){		//decrease 1 every second
		ADC_ChannelTimer=0;		
	}
		
////
	if((CurrentTime.xHOUR == EN_ALARM_MSG_SENDING_TIME)&&
	   (CurrentTime.xMIN  == (ModuleAddress*3)/60)&&
	   (CurrentTime.xSEC  == (ModuleAddress*3)%60)){
	   
			LD_AlarmCounter=0;		//enable alarm message sending at about 10 hour
			PW_AlarmCounter=0;
	}
////
 
}






/*******************************************************************/
//status ok
void __irq RTC_InterruptServing(void)
{
uint32 datas;
uint32 times;
uint8 i;
	RTC_Failed_Time=3000;						
////
	TraceFunAddr((void*)RTC_InterruptServing);	//for watchdog tracing
////		
	
	times = CTIME0;								// 讀取完整的時鐘寄存器
	datas = CTIME1;
	
	CurrentTime.xYEAR  = (datas >> 16) & 0xfff;	// 獲取 年
	CurrentTime.xMONTH = (datas >> 8) & 0x0f;	// 獲取 月
	CurrentTime.xDOM   =  datas & 0x1f;			// 獲取 日
	CurrentTime.xDOW   = (times >> 24) & 0x07;	// 獲取 星期
	CurrentTime.xHOUR  = (times >> 16) & 0x1f;	// 獲取 小時
	CurrentTime.xMIN   = (times >> 8) & 0x3f;	// 獲取 分鐘
	CurrentTime.xSEC   = times & 0x3f;			// 獲取 秒鐘
	
	TimerActSecTick     =1;		//for timer_control function
	HeartBeetTimeSecTick=1;		//for display of time


	LED_Counter++;
	if(LED_Counter & 0x01 == 0x01){	IO1CLR = LED4;}	// LED1點亮
	else						  {	IO1SET = LED4;}	// LED1點亮


	RunningLED_Cnt++;
	if(RunningLED_Cnt & 0x01 == 0x01){	IO1CLR = LED_P1_21;}	// power LED點亮
	else							 {	IO1SET = LED_P1_21;}	// power LED點亮

////
	for(i=0;i<MAX_ROUTE_TASK_NUM;i++){					//
		if((routeTask[i].activityFlag==ENABLE_FLAG)&&
		   (routeTask[i].secondTimer!=0)){
			routeTask[i].secondTimer--;
		}
#ifdef RP_RELAY_ERROR
		else if((routeTask[i].waittingResponse==ENABLE_FLAG)&&
				(routeTask[i].secondTimer!=0xff)){
			routeTask[i].secondTimer++;
		}
#endif		
	}

////
#ifdef RP_RELAY_ERROR
	for(i=0;i<MAX_ROUTE_TASK_NUM;i++){					//
		if((relayErrorTask[i].activityFlag==ENABLE_FLAG)&&
		   (relayErrorTask[i].secondTimer!=0)){
			relayErrorTask[i].secondTimer--;
		}
		else if((relayErrorTask[i].waittingResponse==ENABLE_FLAG)&&
				(relayErrorTask[i].secondTimer!=0xff)){
			relayErrorTask[i].secondTimer++;
		}
	}
#endif
////
	if(enTimerLightCnt!=0){
		enTimerLightCnt--;			// decrease 1 every second.
	}

////	
	if(AutoVoltageTimer!=0){
		AutoVoltageTimer--;			//decrease 1 every second
	}

////	
	if(PW_AlarmEnTimer!=0){			//decrease 1 every second
		PW_AlarmEnTimer--;				//for alarm system
	}

	if(LD_AlarmEnTimer!=0){			//decrease 1 every second
		LD_AlarmEnTimer--;				//for alarm system
	}
	
////
	if(CC1000ResetTimer!=0){		//decrease 1 every second
		CC1000ResetTimer--;
	}

////
	if(SysReadyTimer!=0){			//decrease 1 every second
		SysReadyTimer--;
	}

	if(OutReadyTimer!=0){			//decrease 1 every second
		OutReadyTimer--;
	}

	if(TestSecondTick!=0){			//decrease 1 every second
		TestSecondTick--;
	}
	
////
	ADC_ChannelTimer++;
	if(ADC_ChannelTimer>=Channel_Max_Time){		//decrease 1 every second
		ADC_ChannelTimer=0;		
	}
		
////
	if((CurrentTime.xHOUR == EN_ALARM_MSG_SENDING_TIME)&&
	   (CurrentTime.xMIN  == (ModuleAddress*3)/60)&&
	   (CurrentTime.xSEC  == (ModuleAddress*3)%60)){
	   
			LD_AlarmCounter=0;		//enable alarm message sending at about 10 hour
			PW_AlarmCounter=0;
	}
////
    ILR = 0x01;						// 清除RTC增量中斷標志
    VICVectAddr = 0;				// 向量中斷結束
}

//////////////////////////////////////////////////////////////////
//status ok

void ReadDateTime(void)
{
uint32 datas;
uint32 times;
	
	times = CTIME0;								// 讀取完整的時鐘寄存器
	datas = CTIME1;
	
	CurrentTime.xYEAR  = (datas >> 16) & 0xfff;	// 獲取 年
	CurrentTime.xMONTH = (datas >> 8) & 0x0f;	// 獲取 月
	CurrentTime.xDOM   =  datas & 0x1f;			// 獲取 日
	CurrentTime.xDOW   = (times >> 24) & 0x07;	// 獲取 星期
	CurrentTime.xHOUR  = (times >> 16) & 0x1f;	// 獲取 小時
	CurrentTime.xMIN   = (times >> 8) & 0x3f;	// 獲取 分鐘
	CurrentTime.xSEC   = times & 0x3f;			// 獲取 秒鐘
}


	



/*********************************************************************
** 函數名稱 :RTCInit()
** 函數功能 :初始化實時時鐘
** 入口參數 :無
** 出口參數 :無
status ok
*********************************************************************/
void Start_RTC(void)
{
//	char dbuf[100];
	uint16 CTC1;
	uint16 CTC_i;
	IRQDisable();
	
	CCR   = 0x12;		// 使用獨立振蕩器, CTC reset
    ILR   = 0x03;		// 清除增量中斷標志
    

	/* VIC初始化 */
    VICVectCntl2 = 0x20|INT_RTC;				// 分配通道2
    VICVectAddr2 = (int)RTC_InterruptServing;	// 設置中斷服務程序地址
    VICIntEnable = (1<<INT_RTC);				// 使能RTC中斷
    
    ILR 		= 0x01;	// 清除RTC增量中斷標志
    VICVectAddr = 0;	// 向量中斷結束
    
//restore the calendar
#ifdef EN_SET_DEFAULT_TIME
	SetDefaultRTC();	//set default day and time
#endif

    CCR   = 0x11;		// 使用獨立振蕩器, RTC start
	CIIR  = 0x01;		// 設置秒值的增量產生1次中斷  
	
	CTC1=CTC;
	for(CTC_i=1;CTC_i<10000;CTC_i++);
	if(CTC==CTC1) 
	{
		PREINT=LPC_FPCLK/32768-1;
		PREFRAC=LPC_FPCLK-(PREINT+1)*32768;
		CCR=0x01;	//連接到內部預分頻
	}	

//	if(CCR==0x11)	Uart0SendString("RTC work by RTC_external OSC");	//for debug
//	if(CCR==0x01)   Uart0SendString("RTC work by RTC_internal VPB");	//for debug
	IRQEnable();		// 打開中斷
	RTC_Failed_Time=3000;   //3000ms
}

/////////////////////////////////////////////////////////////////////
//status ok
void SettingRTC (CALENDAR Ctime)
{
	RTC_YEAR	= Ctime.xYEAR;
	RTC_MONTH	= Ctime.xMONTH;
	RTC_DOM		= Ctime.xDOM;
	RTC_DOW		= Ctime.xDOW;
	RTC_HOUR	= Ctime.xHOUR;
	RTC_MIN		= Ctime.xMIN;
	RTC_SEC		= Ctime.xSEC;
}

///////////////////////////////////////////////////////////////////
//status ok
void SetDefaultRTC(void)
{
	if((POWERUP_FLAG1!=WARM_START_FLAG1)||
	   (POWERUP_FLAG2!=WARM_START_FLAG2)){
	   
			RTC_YEAR	= 2005;
			RTC_MONTH	= 12;
			RTC_DOM		= 10;
			RTC_DOW		= 6;
			RTC_HOUR	= 18;
			RTC_MIN		= 1;
			RTC_SEC		= 40+(ModuleAddress%5);
	}
} 

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
水蜜桃久久夜色精品一区的特点| 国产高清不卡一区| 国产乱国产乱300精品| 欧美性高清videossexo| 欧美国产精品一区二区| 麻豆精品在线视频| 欧美日韩一区在线观看| 中文文精品字幕一区二区| 精品一区二区免费看| 欧美日韩国产免费一区二区| 国产精品久久影院| 国产精品中文字幕一区二区三区| 欧美亚洲丝袜传媒另类| 中文字幕一区二区三区视频| 国产中文字幕精品| 日韩欧美国产一区在线观看| 午夜久久久久久久久| 色狠狠一区二区| 亚洲免费高清视频在线| 91玉足脚交白嫩脚丫在线播放| 国产欧美一区二区三区鸳鸯浴| 久久国产精品72免费观看| 在线不卡a资源高清| 亚洲国产一区视频| 欧美日韩国产综合久久| 久久久精品人体av艺术| 久久99蜜桃精品| 欧美色综合久久| 国产精品久久久久久久午夜片| 国产麻豆精品95视频| 日韩精品资源二区在线| 国模娜娜一区二区三区| 久久久综合精品| 国产馆精品极品| 国产网红主播福利一区二区| 国产成人a级片| 国产精品久线在线观看| 色诱亚洲精品久久久久久| 亚洲国产成人自拍| 色婷婷av一区二区三区软件 | 亚洲午夜精品在线| 欧美日韩免费视频| 欧美理论片在线| 亚洲天堂2014| 欧美午夜寂寞影院| 亚洲va韩国va欧美va精品| 欧美日韩日日夜夜| 免费高清不卡av| 中文字幕免费不卡| 欧美日韩在线免费视频| 久久国产日韩欧美精品| 欧美国产禁国产网站cc| 在线日韩av片| 麻豆成人久久精品二区三区小说| 精品乱人伦小说| 日韩av电影一区| 久久亚洲影视婷婷| 97se亚洲国产综合自在线观| 婷婷开心激情综合| 2023国产精华国产精品| 97精品久久久午夜一区二区三区 | 色综合天天综合网国产成人综合天| 亚洲精品国产a| 欧美午夜电影在线播放| 麻豆成人综合网| 中文字幕乱码久久午夜不卡 | 久久99国产精品久久99果冻传媒| 久久九九全国免费| 欧美日韩美少妇| 国产激情偷乱视频一区二区三区 | 欧美日产国产精品| 国产精品一区三区| 午夜精品在线看| 国产精品网站导航| 日韩欧美高清一区| 在线这里只有精品| 国产成人综合视频| 人人狠狠综合久久亚洲| 亚洲美女在线国产| 久久男人中文字幕资源站| 欧美性猛交xxxxxx富婆| 丁香网亚洲国际| 精品一区二区三区免费毛片爱| 亚洲在线成人精品| 亚洲国产精品v| 精品日韩在线观看| 91精品国产全国免费观看| 91小视频免费观看| 国产精品一区二区男女羞羞无遮挡| 天堂久久久久va久久久久| 一区视频在线播放| 国产欧美日韩在线| 久久蜜臀精品av| 精品国产99国产精品| 欧美一区三区四区| 欧美视频一区二区在线观看| 91女厕偷拍女厕偷拍高清| 国产一区二区毛片| 毛片av中文字幕一区二区| 亚洲电影视频在线| 一区二区三区四区国产精品| 国产精品电影一区二区三区| 欧美激情在线免费观看| 国产日产欧美一区| 欧美韩日一区二区三区| 国产欧美1区2区3区| 国产日韩欧美高清| 亚洲精品成人精品456| 亚洲欧洲三级电影| 国产精品福利一区二区三区| 国产精品久久久久7777按摩| 国产欧美精品一区二区三区四区 | 91福利在线导航| 日本黄色一区二区| 欧美网站大全在线观看| 欧美亚洲另类激情小说| 欧美吻胸吃奶大尺度电影| 欧美日韩高清一区| 日韩一区二区三区在线| 日韩欧美中文字幕精品| 日韩精品一区二区三区视频| 久久美女艺术照精彩视频福利播放| 精品国产污污免费网站入口| 国产精品99久久不卡二区| 国产91精品一区二区麻豆亚洲| 久久国产精品免费| 九一久久久久久| 大陆成人av片| 91美女视频网站| 欧美日韩精品久久久| 欧美日韩国产精品成人| 日韩三级.com| 国产三级久久久| 国产精品乱码人人做人人爱| 最新中文字幕一区二区三区| 亚洲午夜电影在线观看| 麻豆国产精品视频| a美女胸又www黄视频久久| 欧美午夜一区二区三区免费大片| 欧美美女网站色| 久久久久久毛片| 一区二区三区自拍| 激情欧美一区二区三区在线观看| 国产成人精品一区二| 欧美日韩亚洲综合一区二区三区 | 成年人午夜久久久| 欧美丝袜丝交足nylons| 国产精品12区| 亚洲天堂精品在线观看| 亚洲国产cao| 蜜臀av一区二区在线免费观看| 不卡av免费在线观看| 777色狠狠一区二区三区| 国产校园另类小说区| 亚洲成人av电影| 粉嫩aⅴ一区二区三区四区| 国产日韩精品一区| 亚洲国产精品天堂| 国产成人av电影免费在线观看| 欧美视频三区在线播放| 国产欧美视频一区二区| 蜜桃一区二区三区四区| 色偷偷成人一区二区三区91| 精品国产伦一区二区三区免费| 自拍偷拍亚洲综合| 久久精品国产亚洲5555| 欧美色窝79yyyycom| 国产精品久久久久永久免费观看 | 国产69精品久久777的优势| 欧美群妇大交群中文字幕| 国产精品人妖ts系列视频| 日av在线不卡| 精品视频一区二区不卡| 国产精品成人网| 久久精品噜噜噜成人88aⅴ| 欧美性感一类影片在线播放| 欧美国产日韩一二三区| 国产在线视视频有精品| 欧美群妇大交群中文字幕| 亚洲欧美另类小说视频| 7777精品久久久大香线蕉| 亚洲欧美电影院| a在线播放不卡| 国产精品私人影院| 成人自拍视频在线| 久久久久久电影| 老司机精品视频导航| 欧美一区二区三区不卡| 亚洲大片一区二区三区| 欧美亚一区二区| 亚洲福中文字幕伊人影院| 一本大道久久精品懂色aⅴ | 国产精品网站在线播放| 国产剧情一区二区| 久久久久九九视频| 国产成人亚洲综合a∨婷婷| 久久色成人在线| 国产成人夜色高潮福利影视| 国产午夜精品久久| 不卡的av在线|