📄 time_rtc.c
字号:
#include <LPC23xx.H>
#include "irq.h"
#include "time_rtc.h"
/*****************************************************************************
RTC的一些函数
*****************************************************************************/
RTCTime current_time;
unsigned char sec_ctn=0;
void RTC_irq(void)__irq
{
RTC_ILR |= ILR_RTCCIF;
IENABLE; //handles nested interrupt
sec_ctn++;
IDISABLE;
VICVectAddr = 0; // Acknowledge Interrupt
}
void RTCInit( void )
{
/*--- Initialize registers ---*/
sec_ctn=0;
RTC_CCR = 0x00000010; //choice the RTCK for the source of RTC
RTC_ILR = ILR_ALLCLEAR; //清除所有RTC中断
RTC_AMR = 0x000000ff; //not cause alarm interrupt
RTC_CIIR = IMSEC ; //每隔一分钟就产生一次中断
RTC_CISS=0x0;
RTC_SEC = 0;
RTC_MIN = 0;
RTC_HOUR = 0;
RTC_DOM = 1;
RTC_DOW = 1;
RTC_DOY = 3;
RTC_MONTH = 9;
RTC_YEAR = 2008;
install_irq(RTC_INT, (void *)RTC_irq,2) ;
return;
}
void RTCStart( void )
{
/*--- Start RTC counters ---*/
RTC_CCR |= CCR_CLKEN;
RTC_ILR = ILR_ALLCLEAR; //清除所有RTC中断
return;
}
void RTCStop( void )
{
/*--- Stop RTC counters ---*/
RTC_CCR &= ~CCR_CLKEN;
return;
}
RTCTime RTCGetTime( void )
{
RTCTime LocalTime;
LocalTime.RTC_Sec = RTC_SEC;
LocalTime.RTC_Min = RTC_MIN;
LocalTime.RTC_Hour = RTC_HOUR;
return ( LocalTime );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -