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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? rtc.c

?? Samsung S3C2443 Test program source code
?? C
字號:
//====================================================================
// File Name : rtc.c
// Function  : S3C2443 RTC Test Program
// Date      : June. 5, 2006
// Version   : 0.0
// History
//   0.0 : Programming start (June. 05, 2006)
//====================================================================

#include <stdio.h>
#include <stdlib.h>

#include "2443addr.h"
#include "System.h"
#include "Exception.h"
#include "Console.h"
#include "def.h"
#include "rtc.h"

char *day[8] = {" ","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
volatile U32 Tick=0, Alarm=0;

void * rtc_func[][2]=
{
	(void *)RTC_time_tick,		"RTC Time Tick Int Test",
	(void *)RTC_initialize,			"RTC time initialize        ",	
	(void *)Rtc_Alarm,			"RTC Alarm Test	",
	(void *)RTC_BATFLT,			"RTC battery falut check Test	",
	0,0
};

void Test_RTC(void)
{
	int i=0;
	
	while(1) {
		printf("\n");
		while(1)
		{   //display menu
	    	printf("%2d:%s",i,rtc_func[i][1]);
	    	i++;
	    	if((int)(rtc_func[i][0])==0)
	    	{
				printf("\n");
				break;
	    	}
	    	if((i%4)==0) printf("\n");
		}
		printf("\nSelect(-1 to exit): ");
		i = GetIntNum();

		if(i==-1) break;

		if(i>=0 && (i<(sizeof(rtc_func)/4)) ) 
	    	( (void (*)(void)) (rtc_func[i][0]) )();	// execute selected function.
	}
}


void RTC_initialize(void)
{
	int year,month,date,hour,min,sec;

	year =  6;
	month= 12;
	date = 31;
	hour = 23;
	min  = 59;
	sec  = 20;
	
    	rRTCCON  = rRTCCON  | 0x1;		//RTC Control enable

    	rBCDYEAR =( ((year/10)<<4) + (year%10) );
    	rBCDMON  =( ((month/10)<<4)+ (month%10));
    	rBCDDATE =( ((date/10)<<4) + (date%10) );     	
    	rBCDDAY  = rBCDDAY  & ~(0x7)  | 0x3;		//SUN:1 MON:2 TUE:3 WED:4 THU:5 FRI:6 SAT:7
    	rBCDHOUR =( ((hour/10)<<4) + (hour%10) );
    	rBCDMIN  =( ((min/10)<<4)  + (min%10)  );
    	rBCDSEC  =( ((sec/10)<<4)  + (sec%10)  );     	

    	//rRTCCON  = rRTCCON  & ~(0x1);	//RTC Control disable

  	while (!Uart_GetKey()){	
    		printf("%2x : %2x : %2x  %10s,  %2x/%2x/20%02x\n",rBCDHOUR,rBCDMIN,rBCDSEC,day[rBCDDAY],rBCDMON,rBCDDATE,rBCDYEAR);
  	}
}
void RTC_time_tick(void)
{
	int i;
	
	RTC_Init();

	printf("[0]1/16384\t[1]:1/8192[2]1/4096\t[3]1/2048\t[4]1/128\t[5]1/1\t[6]1/32768\t :");

	i=GetIntNum();

	rRTCCON = (rRTCCON & ~(0x7<<5)) | (i<<5);

	//printf(" rtcon = %08x\n", rRTCCON);
	
	switch(i)
		{
			// tick interval = 1/tick_clock * (tick_count +1)
			#if 1
			case 0: 	Tick_Count_Set(16384); break;
			case 1: 	Tick_Count_Set(8192); break;
			case 2: 	Tick_Count_Set(4096); break;
			case 3: 	Tick_Count_Set(2048); break;
			case 4: 	Tick_Count_Set(128); break;
			case 5: 	Tick_Count_Set(1); break;			
			case 6: 	
					rRTCCON &= ~(7<<5);
					rRTCCON |= (1<<4); 
					printf(" rtcon = %08x\n", rRTCCON);
					Tick_Count_Set(32767); 
					break;			
			default : break;
			
			#elif 0 // for tick interval test
			case 0: 	Tick_Count_Set(1); break;
			case 1: 	Tick_Count_Set(1); break;
			case 2: 	Tick_Count_Set(1); break;
			case 3: 	Tick_Count_Set(1); break;
			case 4: 	Tick_Count_Set(1); break;
			case 5: 	Tick_Count_Set(1); break;			
			case 6: 	
					rRTCCON &= ~(7<<5);
					rRTCCON |= (1<<4); 
					printf(" rtcon = %08x\n", rRTCCON);
					Tick_Count_Set(1); 
					break;			
			default : break;
			
			#elif 0 // for tick clock resolution
			case 0: 	Tick_Count_Set(2); break;
			case 1: 	Tick_Count_Set(2); break;
			case 2: 	Tick_Count_Set(2); break;
			case 3: 	Tick_Count_Set(2); break;
			case 4: 	Tick_Count_Set(2); break;
			case 5: 	Tick_Count_Set(2); break;			
			case 6: 	
					rRTCCON &= ~(7<<5);
					rRTCCON |= (1<<4); 
					printf(" rtcon = %08x\n", rRTCCON);
					Tick_Count_Set(2); 
					break;			
			default : break;
			
			#endif
		}

	
  	pISR_TICK = (U32)Rtc_Tick_ISR;
   	rINTMSK &= ~(BIT_TICK);

	// for checking tick interval
   	rGPHCON = (rGPHCON & ~(3<<26)) | (1<<26);
	rGPHDAT |= (1<<13);

    	
   	rTICNT0 |= (1<<7);	// Tick Time Interrupt Enable
    
    	
   	while(!Uart_GetKey()) {
    		
   		while(!Tick);	// Wait Tick Interrupt
		//printf("Tick cnt value = %08d\n", rTICNT0); // internal tick time counter register (s3C2443 only)
		Print_RTC();
  		Tick=0;
    	}
	
	rRTCCON &= ~(1<<4);
  	rTICNT0 &= ~(1<<7);	// Tick Time Interrupt Disable
   	rINTMSK |= (BIT_TICK);
   	ClearPending(BIT_TICK);
}

void Rtc_Alarm(void)
{
	int i;
	
    	printf("[ RTC Alarm Test for S3C2442 ]\n");

    	rRTCCON  = 0x01;                    //No reset, Merge BCD counters, 1/32768, RTC Control enable
    	rALMYEAR = TESTYEAR2 ;
    	rALMMON  = TESTMONTH2;
    	rALMDATE = TESTDATE2 ;
    	rALMHOUR = TESTHOUR2 ;
    	rALMMIN  = TESTMIN2  ;
    	rALMSEC  = TESTSEC2  ; 

		
		printf("Select alarm interrupt source  \n");
		printf("1:sec 2:min 3:hour 4:date 5:month 6:year\n");
		
		i = GetIntNum();
		rRTCALM  = (rRTCALM & ~(0x3f<<0))|(1<<(i-1)); //Global,Year,Month,Day,Hour,Minute,Second alarm enable
		printf( " rRTCALM = %08x\n", rRTCALM);
				
		printf("After 5 sec, alarm interrupt will occur.. \n");
		printf("alarm:%2x : %2x : %2x  %2x/%2x/20%02x\n",rALMHOUR,rALMMIN,rALMSEC,rALMMON,rALMDATE,rALMYEAR);
				
		RTC_Init();
		printf("curr:%2x : %2x : %2x  %2x/%2x/20%02x\n",rBCDHOUR,rBCDMIN,rBCDSEC,rBCDMON,rBCDDATE,rBCDYEAR);	
    	
    	Alarm = 0;
    	pISR_RTC = (unsigned int)Rtc_Alarm_ISR;
    	
    	rRTCALM  |= (1<<6);
    
       	rRTCCON  = 0x0;                     //No reset, Merge BCD counters, 1/32768, RTC Control disable
    	rINTMSK  = ~(BIT_RTC);

    	while(Alarm==0)
    	{
    		
    	};
    	printf("Alarmed:%2x : %2x : %2x  %10s,  %2x/%2x/20%02x\n",rBCDHOUR,rBCDMIN,rBCDSEC,day[rBCDDAY],rBCDMON,rBCDDATE,rBCDYEAR);
    	
    	rINTMSK = BIT_ALLMSK;
	    rRTCCON = 0x0;  //RTC  Control disable(for power consumption), 1/32768, Normal(merge), No reset}
	
}

void Tick_Count_Set(U32 count)
{
	rTICNT0 = count/256;
	rTICNT1 = count%256;
}

void Rtc_Alarm_Set()
{
   	rRTCCON  = rRTCCON  | 0x1;		//RTC Control enable

    	rALMHOUR =rBCDHOUR;
    	rALMMIN  =rBCDMIN;
    	rALMSEC  =rBCDSEC+5;

   	printf("After 5 second, Alarm Interrupt Occur\n");

  	//rRTCCON  = rRTCCON  & ~(0x1);	//RTC Control disable
}

void Print_RTC(void)
{
	int year,month,date,hour,min,sec,weekday;

   	rRTCCON  = rRTCCON  | 0x1;		//RTC Control enable
   		
    if(rBCDYEAR==0x99) 
       	year = 0x1999;
  	else 
       	year = 0x2000 + rBCDYEAR;
              	
	month   = rBCDMON;
	weekday = rBCDDAY;
	date    = rBCDDATE;
	hour    = rBCDHOUR;
	min     = rBCDMIN;
	sec     = rBCDSEC;

  	rRTCCON  = rRTCCON  & ~(0x1);	//RTC Control disable
	printf("%2x : %2x : %2x  %10s,  %2x/%2x/%4x\n",hour,min,sec,day[weekday],month,date,year);
}

void RTC_Init(void)
{

    rRTCCON  = rRTCCON  & ~(0xf)  | 0x1;            //No reset, Merge BCD counters, 1/32768, RTC Control enable
    
    rBCDYEAR = rBCDYEAR & ~(0xff) | TESTYEAR;
    rBCDMON  = rBCDMON  & ~(0x1f) | TESTMONTH;
    rBCDDATE = rBCDDATE & ~(0x3f) | TESTDATE;         
    rBCDDAY  = rBCDDAY  & ~(0x7)  | TESTDAY;       //SUN:1 MON:2 TUE:3 WED:4 THU:5 FRI:6 SAT:7
    rBCDHOUR = rBCDHOUR & ~(0x3f) | TESTHOUR;
    rBCDMIN  = rBCDMIN  & ~(0x7f) | TESTMIN;
    rBCDSEC  = rBCDSEC  & ~(0x7f) | TESTSEC;
    
    rRTCCON  = 0x0;             //No reset, Merge BCD counters, 1/32768, RTC Control disable    

}


void RTC_BATFLT(void)
{

	rRTCCON |= (1<<0); //must be set "1"
	printf(" when check the register set to 1 varying the VDDrtc voltage\n");
	printf(" change the VDDrtc value !!!\n");
	printf(" Once LOWBAT bit set, although the VDDrtc power off, this register keep the value\n");	
	printf(" \n");
	printf(" Setop down the VDDRTC volatage !!!!=rtcbat= %08x\n",rRTCLBAT);

	rRTCLBAT |= (1<<0);
	
	printf("rtc cleared = %08x\n",rRTCLBAT);
		
	while ( rRTCLBAT != 1 )
	{
		printf(">\b");
	}; 

	printf(" Check the VDDrtc voltage, and then adjust the RTC time value\n");

	rRTCLBAT |= (1<<0); // set "1" then cleared this bit.
	
	printf(" RTCBAT register = %08x\n",rRTCLBAT);

}


void __irq Rtc_Tick_ISR(void)
{
	rGPHDAT ^= (1<<13); // for test tick interval
	ClearPending(BIT_TICK);
	Tick=1;

	//printf(" RTC tick test OK\n");
}

void __irq Rtc_Alarm_ISR(void)
{
	ClearPending(BIT_RTC);
	Alarm=1;
	printf(" RTC alarm test OK\n");
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区不卡视频| 国产精品一级黄| 在线一区二区三区做爰视频网站| 国产精品污网站| 91在线国产观看| 亚洲免费视频中文字幕| 欧美丝袜丝nylons| 免费的成人av| 久久嫩草精品久久久久| www.成人在线| 亚洲一区免费观看| 日韩你懂的在线播放| 国产精品白丝jk黑袜喷水| 国产精品久久毛片a| 91久久国产综合久久| 肉色丝袜一区二区| 久久夜色精品一区| 色香色香欲天天天影视综合网| 亚洲aⅴ怡春院| 国产亚洲va综合人人澡精品| 99视频国产精品| 日韩av中文字幕一区二区| 久久久久国产免费免费| 一本到不卡免费一区二区| 日韩经典一区二区| 国产精品久线在线观看| 欧美日韩国产综合视频在线观看| 国产一区二区在线观看视频| 一区二区三区在线免费观看| 日韩视频免费观看高清在线视频| 国产精品资源站在线| 一区二区三区产品免费精品久久75| 欧美日韩二区三区| 成人免费视频播放| 免费观看在线综合| 亚洲精品一卡二卡| 久久久亚洲精品一区二区三区| 色香蕉久久蜜桃| 国产露脸91国语对白| 五月婷婷激情综合| 综合色中文字幕| 337p日本欧洲亚洲大胆色噜噜| 在线免费观看不卡av| 国产成+人+日韩+欧美+亚洲| 人禽交欧美网站| 亚洲精品中文在线| 亚洲色图.com| 久久久久亚洲综合| 91精品国产aⅴ一区二区| 91视频免费观看| 丰满白嫩尤物一区二区| 免费人成在线不卡| 香蕉乱码成人久久天堂爱免费| 国产精品久久久久久久久动漫| 欧美精品一区二区久久久| 欧美三级日韩在线| 99久久精品国产导航| 国产大陆a不卡| 国产主播一区二区| 美女视频网站黄色亚洲| 五月婷婷激情综合网| 亚洲精品国产视频| 中文字幕一区二区三| 国产欧美一区二区精品性色超碰 | 国产呦萝稀缺另类资源| 亚洲无线码一区二区三区| 亚洲欧洲性图库| 国产精品欧美一级免费| 欧美激情中文字幕一区二区| 精品日韩av一区二区| 日韩精品综合一本久道在线视频| 欧美视频一区二区| 欧美三级午夜理伦三级中视频| 色94色欧美sute亚洲线路一ni| av电影在线观看一区| 成人免费视频网站在线观看| 成人听书哪个软件好| 成人黄色电影在线| fc2成人免费人成在线观看播放| 岛国精品在线观看| www.性欧美| 一本高清dvd不卡在线观看| 色视频一区二区| 91激情五月电影| 欧美日韩亚洲综合在线| 欧美丝袜自拍制服另类| 欧美丰满美乳xxx高潮www| 884aa四虎影成人精品一区| 欧美一区二区私人影院日本| 日韩一区二区电影在线| 久久亚洲私人国产精品va媚药| 久久久久国产精品麻豆| 国产精品久久久久久久久久免费看| 国产精品天干天干在观线| 亚洲天堂成人网| 午夜精品久久久久久不卡8050| 亚洲成人综合视频| 久久99这里只有精品| 懂色一区二区三区免费观看| 99精品1区2区| 欧美日韩一区二区电影| 日韩一区二区三区免费看| 亚洲精品一区二区三区在线观看| 国产欧美中文在线| 亚洲免费观看高清在线观看| 日日噜噜夜夜狠狠视频欧美人 | 韩国欧美国产1区| 欧美三片在线视频观看| 日韩欧美三级在线| 国产精品每日更新| 亚洲一区二区三区在线| 久久99久久久欧美国产| 成人国产视频在线观看| 欧美日韩国产中文| 日本一区二区三区四区在线视频| 亚洲国产乱码最新视频| 久久国产日韩欧美精品| 91免费版在线看| 日韩美女主播在线视频一区二区三区| 久久亚洲精精品中文字幕早川悠里 | 国产一区二区美女诱惑| av午夜精品一区二区三区| 91.com视频| 国产精品国产三级国产| 日韩不卡手机在线v区| 不卡一区二区三区四区| 欧美一区二区三区的| 亚洲欧洲国产专区| 久久9热精品视频| 欧美日韩精品三区| 国产精品日产欧美久久久久| 看片的网站亚洲| 在线观看av一区| 欧美激情一区二区在线| 美腿丝袜亚洲三区| 欧美在线观看视频一区二区| 精品国产精品网麻豆系列 | 欧美日韩一区二区欧美激情| 国产日韩欧美综合一区| 日本亚洲电影天堂| 色综合久久久久久久| 中文字幕欧美国产| 另类人妖一区二区av| 欧美日韩一卡二卡| 亚洲精品写真福利| 丰满亚洲少妇av| 久久久久久麻豆| 精品一二三四在线| 日韩一区二区三区电影在线观看| 亚洲精品成a人| av中文字幕亚洲| 国产色一区二区| 国产真实乱偷精品视频免| 欧美一区二区三区小说| 亚洲国产一区二区在线播放| 99re这里只有精品视频首页| 亚洲国产高清在线观看视频| 韩国精品主播一区二区在线观看 | 亚洲自拍欧美精品| 91丨porny丨国产入口| 国产精品短视频| 成人av在线影院| 国产精品女上位| 99re视频精品| 亚洲精品中文字幕乱码三区| 色婷婷亚洲精品| 一区二区三区av电影| 欧美在线|欧美| 国产乱人伦精品一区二区在线观看 | 美国三级日本三级久久99 | 在线观看一区不卡| 亚洲一区二区在线免费看| 欧美亚一区二区| 日本女优在线视频一区二区| 日韩欧美中文字幕一区| 免费看黄色91| 久久久久97国产精华液好用吗| 国产成人免费视频精品含羞草妖精| 欧美经典一区二区三区| 成人av网站在线观看免费| 中文字幕中文在线不卡住| 91免费国产视频网站| 一区二区激情视频| 91 com成人网| 国产一区二区三区四区五区入口| 久久亚洲欧美国产精品乐播| 成人黄色a**站在线观看| 亚洲人午夜精品天堂一二香蕉| 欧美在线短视频| 日本视频中文字幕一区二区三区| 欧美xxxx老人做受| 国产91精品久久久久久久网曝门| 亚洲婷婷在线视频| 欧美日韩aaaaa| 国产麻豆精品在线| 综合激情网...| 欧美一区二区三区精品| 国产69精品久久777的优势| 一区二区三区在线观看网站| 7777精品伊人久久久大香线蕉经典版下载|