time_rtc.c

来自「在LPC2368上实现的FFT程序」· C语言 代码 · 共 69 行

C
69
字号
#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 + =
减小字号Ctrl + -
显示快捷键?