PAGE1
PAGE1
LPC1768RTC和日历功能
1.概述
LPC1768是一款基于ARMCortex-M3内核的高性能微控制器,广泛应用于各种嵌入式系统中。RTC(实时时钟)是LPC1768中一个非常重要的外设,用于提供精确的时间和日期信息。RTC可以在系统低功耗模式下继续运行,从而在长时间内保持时间的准确性。本文将详细介绍LPC1768的RTC和日历功能的原理、配置方法以及应用实例。
2.RTC模块的功能和特性
2.1功能概述
LPC1768的RTC模块提供以下主要功能:
实时时钟:提供秒、分钟、小时、日、月、年的时间信息。
日历功能:提供日期信息,支持闰年计算。
报警功能:可以设置时间或日期的报警,触发中断。
周期性中断:可以设置周期性中断,用于定时任务。
低功耗模式:在低功耗模式下继续运行,保持时间的准确性。
2.2特性
电源管理:RTC模块可以在系统进入低功耗模式时继续运行,确保时间的连续性。
精确度:RTC模块通过外部32.768kHz晶振提供高精度的时间基准。
多种时钟源:可以使用外部晶振、内部RC振荡器或外部时钟信号作为时钟源。
中断和报警:支持通过中断和报警功能实现定时任务和事件提醒。
硬件闰年计算:自动处理闰年,简化日历管理。
3.RTC模块的寄存器
3.1主要寄存器
LPC1768的RTC模块包含多个寄存器,用于配置和控制RTC功能。以下是主要寄存器的介绍:
RTC_CLOK:时钟源选择寄存器。
RTC_CLDO:时钟输出控制寄存器。
RTC_SEC:秒寄存器。
RTC_MIN:分钟寄存器。
RTC_HOUR:小时寄存器。
RTC_DOM:日寄存器。
RTC_DOW:星期寄存器。
RTC_DOY:年中日寄存器。
RTC_MONTH:月寄存器。
RTC_YEAR:年寄存器。
RTC_CTRL:控制寄存器。
RTC_STAT:状态寄存器。
RTC_PREINT:预分频寄存器。
RTC_PREFRAC:预分频分数寄存器。
RTC_WDALR:星期报警寄存器。
RTC_CALR:日历报警寄存器。
RTC_SECC:秒计数寄存器。
RTC_MINC:分钟计数寄存器。
RTC_HOUC:小时计数寄存器。
RTC_DOSC:日计数寄存器。
RTC_DOWC:星期计数寄存器。
RTC_DOYC:年中日计数寄存器。
RTC_MOUC:月计数寄存器。
RTC_YEAC:年计数寄存器。
3.2寄存器详解
3.2.1RTC_CLOK
位字段:
SRCSEL:时钟源选择位,0表示使用内部1Hz时钟,1表示使用外部32.768kHz晶振。
CLKEN:时钟使能位,0表示禁用,1表示启用。
3.2.2RTC_CLDO
位字段:
CLKOUTSEL:时钟输出选择位,0表示输出1Hz时钟,1表示输出32.768kHz时钟。
CLKOUTEN:时钟输出使能位,0表示禁用,1表示启用。
3.2.3RTC_SEC
位字段:
SECONDS:当前秒数(0-59)。
3.2.4RTC_MIN
位字段:
MINUTES:当前分钟数(0-59)。
3.2.5RTC_HOUR
位字段:
HOURS:当前小时数(0-23)。
3.2.6RTC_DOM
位字段:
DAYOFMONTH:当前日数(1-31)。
3.2.7RTC_DOW
位字段:
DAYOFWEEK:当前星期数(0-6,0表示星期日)。
3.2.8RTC_DOY
位字段:
DAYOFYEAR:当前年中日数(1-366)。
3.2.9RTC_MONTH
位字段:
MONTH:当前月数(1-12)。
LEAPYEAR:闰年标志位,0表示非闰年,1表示闰年。
3.2.10RTC_YEAR
位字段:
YEAR:当前年数(0-99)。
3.2.11RTC_CTRL
位字段:
ENABLE:RTC使能位,0表示禁用,1表示启用。
INTEN:中断使能位,0表示禁用,1表示启用。
CLKEN:时钟使能位,0表示禁用,1表示启用。
CLKSEL:时钟源选择位,0表示使用1Hz时钟,1表示使用32.768kHz时钟。
3.2.12RTC_STAT
位字段:
CALALARM:日历报警状态位,0表示未触发,1表示触发。
WDALARM:星期报警状态位,0表示未触发,1表示触发。
SECINT:秒中断状态位,0表示未触发,1表示触发。
MININT:分钟中断状态位,0表示未触发,1表示触发。
HOURINT:小时中断状态位,0表示未触发,1表示触发。
DOMINT:日中断状态位,0表示未触发,1表示触发。