⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtc.c

📁 基于arm9的,usb设备(u盘)的读写操作实现.
💻 C
字号:

#include "mx_types.h"
#include "2410addr.h"
#include "2410lib.h"


#include "rtc.h"

//#define _XTAL_

u_8 BCD2DEC(u_8 BCDnum)
{
	return ((((BCDnum>>4)&0x0f)*10)+(BCDnum&0x0f));
}

u_8 DEC2BCD(u_8 DECnum)
{
	return ((((DECnum/10)&0x0f)<<4)|((DECnum%10)&0x0f));
}

void RTC_Reset(void)
{
	rRTCCON = CLKRST |RTCEN;
	Delay(20);
	rRTCCON = RTCEN;
	Delay(20);
	
#ifdef _XTAL_
	rRTCCON |= CLKSEL;
#endif //_XTAL_
}


void RTC_Start(void)
{
	rRTCRST = 0x08; 	//
	
	rTICNT = 0xFF;	//Tick time interrupt enable, and tick counter vlaue is 127

	rBCDSEC = 0;
	rBCDMIN = 0;
	rBCDHOUR = 0;
	rBCDDATE = 1;
	rBCDMON = 2;
	rBCDYEAR = 0;
}


void RTC_GetTime(RTC_Time *prTime)
{
	prTime->second =BCD2DEC(rBCDSEC);
	prTime->minute =BCD2DEC(rBCDMIN);
	prTime->hour =BCD2DEC(rBCDHOUR);
	prTime->date =BCD2DEC(rBCDDATE);
	prTime->month =BCD2DEC(rBCDMON);
	prTime->year =BCD2DEC(rBCDYEAR) + 2007;
}

void RTC_AlarmEnable(u_8 Almen, RTC_Time * prTime)
{
	rALMYEAR = DEC2BCD(prTime->year);
	rALMMON= DEC2BCD(prTime->month);
	rALMDAY= DEC2BCD(prTime->date);
	rALMHOUR= DEC2BCD(prTime->hour);
	rALMMIN= DEC2BCD(prTime->minute);
	rALMSEC= DEC2BCD(prTime->second);
	
	rRTCALM = Almen; // alarm interrupt or wake_up from power down mode.
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -