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

📄 lpc_rtc.h

📁 NXP LPC系列AMR7的开发程序源码(LCD
💻 H
字号:
/*************************************************************************
 *
 *    Used with ICCARM and AARM.
 *
 *    (c) Copyright IAR Systems 2003
 *
 *    File name   : LPC_Rtc.h
 *    Description : Define RTI structure and relative micro
 *
 *    History :
 *    1. Date        : August 10, 2004
 *       Author      : Shawn Zhang
 *       Description : Create
 *
 *    2. Date        : Oct 12, 2004
 *       Author      : Stanimir Bonev
 *       Description: Modify the interface of some functions
 *
 *    $Revision: 13961 $
 **************************************************************************/

#include "includes.h"

#ifndef __LPC_RTC_H
#define __LPC_RTC_H

#define RTC_CountPerSec     32768

#define RTC_YEARMIN         1901
#define RTC_YEARMAX         2099

// 1901.1.1 DOW = 2
#define RTC_BASEYEAR        1901
#define RTC_BASEMONTH       1
#define RTC_BASEDAY         1
#define RTC_BASEDOW         2

/* RTC Interrupt location register bit descriptions */
#define ILR_CIF_BIT         0
#define ILR_ALF_BIT         1

/* RTC Clock control register bit descriptions */
#define CCR_CLKEN_BIT       0
#define CCR_CTCRST_BIT      1

/* RTC Increment Interrupt Type */
#define IncIntType_SEC	    0x1
#define IncIntType_MIN	    0x2
#define IncIntType_HOUR	    0x4
#define IncIntType_DAY	    0x8
#define IncIntType_MON	    0x40
#define IncIntType_YEAR	    0x80
#define IncIntType_DOW	    0x10
#define IncIntType_DOY	    0x20

/* RTC Alarm Interrupt Type */
#define AlarmIntType_SEC    0x1
#define AlarmIntType_MIN    0x2
#define AlarmIntType_HOUR   0x4
#define AlarmIntType_DAY    0x8
#define AlarmIntType_MON    0x40
#define AlarmIntType_YEAR   0x80
#define AlarmIntType_DOW    0x10
#define AlarmIntType_DOY    0x20

 /* RTC interrupt type */
#define RTCIncrementInt	    0x1
#define RTCAlarmInt	    0x2
#define RTCALLInt	    0x3

typedef struct {
	unsigned short year;  // year value
	unsigned char month;  // month value
	unsigned char day;    // day value

	/* the below member is used in get-operation */
	unsigned char DOW;    // Day of week
	unsigned char DOY;    // Day of year
} LPC_Rtc_Date_t;

typedef struct {
	unsigned char hour;   // hour value
	unsigned char minute; // minute value
	unsigned char second; // second value
} LPC_Rtc_Time_t;

typedef struct {
	unsigned short year;  // year value
	unsigned char month;  // month value
	unsigned char day;    // day value

	unsigned char hour;   // hour value
	unsigned char minute; // minute value
	unsigned char second; // second value

	/* the below member is used in get-operation */
	unsigned char DOW;    // Day of week
	unsigned char DOY;    // Day of year
} LPC_Rtc_DateTime_t;

static LPC_Rtc_DateTime_t RTC_InitDateTime = {2005, 2, 14, 12, 0, 0};
static char *RTC_DOWTbl[] = {
	"Sunday ",
	"Monday ",
	"Tuesday ",
	"Wednesday ",
	"Thursday ",
	"Friday ",
	"Saturday "
};

static char *RTC_MonthTbl[] = {
	"",
	"January ",
	"February ",
	"Match ",
	"April ",
	"May ",
	"June ",
	"July ",
	"August ",
	"September ",
	"October ",
	"November ",
	"December "
};

static int RTC_MonthVal[]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};


/* Declare functions */
void RTC_Enable(void);
void RTC_Disable(void);

int RTC_Init(LPC_BOOL OldComp);

int RTC_SetDate (LPC_Rtc_Date_t *pDate);
int RTC_SetTime (LPC_Rtc_Time_t *pTime);
int RTC_SetDateTime (LPC_Rtc_DateTime_t *pDateTime);

int RTC_GetDate (LPC_Rtc_Date_t *pDate);
int RTC_GetTime (LPC_Rtc_Time_t *pTime);
int RTC_GetDateTime (LPC_Rtc_DateTime_t *pDateTime);

void RTC_SetIncInt (unsigned char IncIntType);
void RTC_DisableIncInt(void);

void RTC_SetAlarmInt (unsigned char AlarmIntType);
void RTC_DisableAlarmInt(void);
int RTC_SetAlarmDateTime (LPC_Rtc_DateTime_t *pDateTime);

int RTC_ClearInt(unsigned long IntType);
unsigned long RTC_CheckIntType(void);

void RTC_ISR (void);

void FormatDate (int Type, LPC_Rtc_Date_t *pDate, char *s);
void FormatTime (int Type, LPC_Rtc_Time_t *pTime, char *s);
void FormatDateTime (int Type, LPC_Rtc_DateTime_t *pDateTime, char *s);

extern void SysTimeUpdate (void);
extern void Alarm (void);


#endif  // __LPC_RTC_H

⌨️ 快捷键说明

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