×
单片机 > 单片机程序设计 > 详情

LPC1768 -- RTC使用方法

发布时间:2020-06-04 发布时间:
|

LPC 内部RTC配置比较简单,其初始化方法如下:

void RTC_Init( void )

{

   PCONP_bit.PCRTC = 1;        // Enable the peripheral clock for RTC

   if( RTCCCR_bit.CLKEN == 0 ) {

          RTCILR = 0;

          RTCAMR = 0xFF;         

          RTCCIIR = 0;

          RTCCCR = 0;

          RTC_Set_DefTime();

          RTC_Start();

    }

}


获取时间函数 ,在这里需要建立一个RTC的 结构体,用于存储时间数据.

typedef{

    INT8U u8_Second;

    INT8U u8_Minute;

    INT8U u8_Hour;

    INT8U u8_DayMonth;

    INT8U u8_DayWeek;

    INT16U u16_DayYear;

    INT8U u8_Month;

    INT16U u8_Year;

}

void RTC_Get_Time( RTC* pst_time )

{

    pst_time->u8_Year = RTCCTIME1_bit.YEAR - 2000;

    pst_time->u8_Month = RTCCTIME1_bit.MON;

    pst_time->u16_DayYear = RTCCTIME2_bit.DOY;

    pst_time->u8_DayWeek = RTCCTIME0_bit.DOW;

    pst_time->u8_DayMonth = RTCCTIME1_bit.DOM;

    pst_time->u8_Hour = RTCCTIME0_bit.HOUR;

    pst_time->u8_Minute = RTCCTIME0_bit.MIN;

    pst_time->u8_Second = RTCCTIME0_bit.SEC;

}


同样使用该结构体初始化时间参数

void RTC_Set_Time( RTC* pst_time )

{

    RTCSEC_bit.SEC = pst_time->u8_Second;

    RTCMIN_bit.MIN = pst_time->u8_Minute;

    RTCHOUR_bit.HOUR = pst_time->u8_Hour;

    RTCDOM_bit.DOM = pst_time->u8_DayMonth;

    RTCDOW_bit.DOW = pst_time->u8_DayWeek;

    RTCDOY_bit.DOY = pst_time->u16_DayYear;

    RTCMONTH_bit.MON = pst_time->u8_Month;

    RTCYEAR_bit.YEAR = pst_time->u8_Year + 2000;

}


通过以上三个函数即完成了RTC的配置工作。

 



void TestRTC(void)

{

   RTC_Get_Time( &GetRtc );

   static INT8U Second = 0;

   if( Second != GetRtc.u8_Second){

      Second = GetRtc.u8_Second;

   printf("Current data : %d-%d-%d ",GetRtc.u8_Year+2000,GetRtc.u8_Month,GetRtc.u8_DayMonth);

      printf("Current Time : %d:%d:%d ",GetRtc.u8_Hour,GetRtc.u8_Minute,GetRtc.u8_Second);

   }

}

 

测试结果:通过uart接口打印在PC机 串口监控软件上。

Current data : 2011-10-13

Current Time : 0:58:39

Current data : 2011-10-13

Current Time : 0:58:40

Current data : 2011-10-13

Current Time : 0:58:41

Current data : 2011-10-13

Current Time : 0:58:42

Current data : 2011-10-13

Current Time : 0:58:43

Current data : 2011-10-13

Current Time : 0:58:44

Current data : 2011-10-13

Current Time : 0:58:45

Current data : 2011-10-13

Current Time : 0:58:56




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向