RTC的使用,首先要设置RTC的时钟源,2368可以有两种方式,1 使用PLL 分频得到32.768K的时钟,2 直接用外部32.768的晶体,不知NXP为何搞这两种方式,个人认为可能是为了降低功耗,当系统有电时用片上的PLL为RTC供电,掉电时用外部晶体,这样可以延长电池寿命。但是要注意的是如果系统一直使用PLL为RTC
时钟的话,掉电时间会丢失的,因为时钟没有了。下面的程序用来在CSTN屏上显示时间:格式为:Week Year—Month—Day Hour: Min
并用一个按键来校准时间,在板子上用K1,同时用光标来指示要修改的时间区域。
K1 Single Click Time Reg Value Increase or Decrease
K1 Double Click Change the Modify Area
K1 LongTime Click Switch the INC or DEC
程序如下:
RTCTime RTCGetTime( void )
{
RTCTime LocalTime;
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
LocalTime.RTC_Sec = SEC;
LocalTime.RTC_Min = MIN;
LocalTime.RTC_Hour = HOUR;
LocalTime.RTC_Mday = DOM;
LocalTime.RTC_Wday = DOW;
LocalTime.RTC_Yday = DOY;
LocalTime.RTC_Mon = MONTH;
LocalTime.RTC_Year = YEAR;
return ( LocalTime );
}
void RTC_ISR (void)
{
ILR |= ILR_RTCCIF; /* clear interrupt flag */
alarm_on = 1;
}
RTC实时显示时间任务。
void Task_RTC(void * pdata)
{
RTCTime current_time;
YEAR_bit.YEAR = 2008;
while(1)
{
while(alarm_on==0)
OSTimeDly(10);
alarm_on = 0;
current_time = RTCGetTime();
//CSTN_Filling_Window(0, 0, 15, 161, Red);
Refresh_Time(current_time);
}
}
用户177448 2008-12-8 15:23
用户187223 2008-11-20 23:04