资源预览内容
第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
第9页 / 共40页
第10页 / 共40页
第11页 / 共40页
第12页 / 共40页
第13页 / 共40页
第14页 / 共40页
第15页 / 共40页
第16页 / 共40页
第17页 / 共40页
第18页 / 共40页
第19页 / 共40页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
单击此处编辑母版标题样式,实时时钟,(RTC),SX1316031,RTC,概述,1,RTC,引脚描述和配置,2,寄存器描述,3,RTC,基本操作,4,RTC,总结,5,RTC,概述,实时时钟(RTC)是一组计数器,它用于测量时间,在系统掉电时也可以继续运行。RTC在掉电模式下消耗的功率极低。LPC1700系列Cortex-M3微控制器中的RTC时钟源可以是单独的32KHz的时钟,它可以产生一个1Hz内部时基。RTC由自带的电源引脚Vbat供电,Vbat可以与蓄电池相连,也可以与外部3.3V电源引脚相连或保持断开。,RTC,引脚和电源域的总体设计:,RTC,简介,LPC1700,系列,ARM,内置,RTC,模块。采用外部独立,32.768KHz,晶振,用于产生,1Hz,的内部时钟基准值,它具有如下特性:,超低功耗,支持电池供电系统,校准计数器可对时间进行校准,RTC,电源与芯片的其他部分分离,专门的,32KHz,超低功耗振荡器,带日历和时钟功能,计数器增量中断和报警中断功能,特点,目 录,RTC,概述,1,RTC,引脚描述和配置,2,寄存器描述,3,RTC,基本操作,4,RTC,总结,5,RTC,引脚描述:,LPC1700,系列实时时钟,RTC,有三个引脚:,RTCX1,为,RTC,振荡器电路的输入引脚。,RTCX2,为,RTC,振荡器电路的输出引脚。,VBAT,为,RTC,电源:通常与外部,3V,蓄电池相连。如果该引脚没有供电,则,RTC,仍由内部供电(如果有,VDD,(,3V3,)。,如果不使用,RTC,,,RTCX1/2,引脚可悬空。,RTC,功能模块:,时钟发生器,RTC,振荡器,时间,计数器,比较器,报警,寄存器,计数器,增量中断使能,报警,屏蔽寄存器,中断发生器,计数器使能,选通,CLK1,CCLK,使用下列寄存器来配置,RTC,:,(,1,)功率:在寄存器,PCONP,中置位,PCRTC,。,注意:复位后,,RTC,被使能。,(,2,)时钟:,RTC,将,RTC,振荡器提供的,1Hz,时钟信号作为它唯一的时钟源。访问寄存器时外设时钟的频率为,CCLK/8,。,(,3,)中断:利用相应的中断置位使能寄存器来使能,NVIC,中的中断。,RTC,概述,1,RTC,引脚描述和配置,2,寄存器描述,3,RTC,基本操作,4,RTC,总结,5,混合寄存器,完整时间寄存器,报警寄存器组,时间计数器寄存器,RTC,寄存器大致可分为五类:,RTC,内部结构,寄存器描述,通用寄存器,实时时钟寄存器映射,实时时钟寄存器映射,1,、混合寄存器组,(,1,)中断位置寄存器,(,2,)时钟控制寄存器,(,3,)计数器增量中断寄存器,(,4,)报警屏蔽寄存器,(,5,),RTC,辅助控制寄存器,(,6,),RTC,辅助使能寄存器,2,、完整时间寄存器,(,1,)完整时间寄存器,0,(,2,)完整时间寄存器,1,(,3,)完整时间寄存器,2,3,、时间计数器组,(,1,)闰年计算,RTC,执行一个简单的位比较,看年计数器的最低两位是否为,0,。如果为,0,,那么,RTC,认为这一年为闰年。,RTC,认为所有能被,4,整出的年份都为闰年。这个算法从,1901,年到,2099,年都是准确的,但在,2100,年出错,,2100,年并不是闰年。闰年对,RTC,的影响只是改变,2,月份的天数、日期(月)和年的计数值。,(,2,)校准寄存器,RTC,内部结构,增量中断,报警中断,中断位置寄存器,(,ILR,),报警寄存器组,时间计数器组,秒值(,SEC,),分值(,MIN,),小时值(,HOUR,),日期(月)(,DOM,),星期值(,DOW,),日期(年)(,DOY,),月值(,MON,),年值(,YEAR,),完整时间寄存器,0,2,CTIME0,CTIME2,计数器增量中断寄存器,(,CIIR,),0 x00,复位,使能,秒报警值(,ALSEC,),分报警值(,ALMIN,),小时报警值(,ALHOUR,),日期,(,月,),报警(,ALDOM,),星期报警值(,ALDOW,),日期,(,年,),报警值(,ALDOY,),月报警值(,ALMON,),年报警值(,ALYEAR,),报警屏蔽,寄存器(,AMR,),比较器,时钟控制寄存器,(,CCR,),RTC,振荡器,时,钟,节,拍,计,数,器,CTC,时钟校准寄存器,CALIBRATION,通用寄存器,GPREG0GPREG4,RTC,寄存器结构,RTC,中断,中断的产生由中断位置寄存器(ILR)、计数器增量中断寄存器(CIIR)、报警寄存器和报警屏蔽寄存器(AMR)控制。只有转换到中断状态才能产生中断。ILR单独使能CIIR和AMR中断。CIIR中的每个位都对应一个时间计数器。如果使能其中某一位,那么该位对应的计数器每增加一次就产生一次中断。报警寄存器允许用户设定产生中断的日期和时间。AMR提供一个屏蔽报警比较的机制。当所有非屏蔽报警寄存器均与它们对应的时间计数器的值匹配时,就会产生中断。,RTC,校准过程,校准逻辑会定时通过使计数器的值增加,2,对时间计数器进行调整。这样就可以在典型电压和适当的温度下对,RTC,振荡器直接进行校准,无需通过外部仪器来调节,RTC,振荡器。,向后校准,向前校准,目 录,RTC,概述,1,RTC,引脚描述和配置,2,寄存器描述,3,RTC,基本操作,4,RTC,总结,5,RTC,基本操作,RTC,的基本操作大致可分为两类:,RTC,基本操作,时钟设置,增量中断,报警中断,中断设置,时间计数器使能,时钟启动,年月设置,时间设置,星期设置,RTC,设置,RTC,时间设置,RTC,基本操作,设置,RTC,时间为“,2014-3-12,,星期三,,11,:,11,:,11”,:,时钟设置,DOM,HOUR,MIN,MONTH,SEC,YEAR,DOW,11,03,12,03,2014,11,11,在,RTC,中,有,8,个与时间相关的寄存器。在初始化年、月、日时间计数器时,一般设置,7,个寄存器,:SEC,、,MIN,、,HOUR,、,DOM,、,DOW,、,MONTH,、,YEAR,。,RTCYEAR =2014;,RTCMONTH=03;,RTCDOM =12;,RTCDOW =3;,RTCHOUR =11;,RTCMIN =11;,RTCSEC =11;,获取年信息,获取月信息,获取日信息,获取星期信息,获取小时信息,获取分信息,获取秒信息,RTC,基本操作,增量中断,此时秒增量中断,增量中断,由,CIIR,控制,ILR,的相应,位置位,NVIC,向量中断控制器,增量中断产生,中断信号,操作代码:,CIIR=0 x01;,在,RTC,中,计数器增量中断寄存器,(CIIR),中的每一位都对应着一个时间计数器,如果使能其中的某一位,那么改变所对应的时间计数器,每增加一次,就会产生一次中断。,报警中断,RTC,基本操作,报警寄存器允许用户设定产生中断的时间,当,RTC,的当前时间与报警时间相匹配时,就会引发报警中断。通过报警寄存器,(AMR),来完成报警值的设定。,ALSEC,ALMIN,ALHOUR,报警时间寄存器,ALYEAR,当前时间寄存器,SEC,MIN,HOUR,YEAR,报警屏蔽寄存器,AMR,1,1,1,1,控制当前时间,是否与对应的,报警时间比较,报警中断,对应匹配,RTC,基本操作,RTC,的基本操作大致可分为两类:,RTC,基本操作,LPC1700,系列,ARM,的,RTC,模块有三组完整时间寄存,CTIME,,通常通过读取,CTIME0,和,CTIME1,来获取当前时间,时间读取,操作代码:,times=CTIME0;,datas=CTMIE1;,bak =(dates 16),bak =(dates 8),bak =dates,bak =(times 24),bak =(times 16),bak =(times 8),bak =times,读取完整时间存器,获取年信息,获取月信息,获取日信息,获取星期信息,获取小时信息,获取分信息,获取秒信息,RTC,应用案例,主要步骤,RTC,应用案例,部分程序代码,RTC,初始化,INT32U rtcInit(INT16U*pusRtcTime),RTCCCR =0 x0;/*,禁止时间计数器 *,/,RTCILR =0 x03;/*,清除中断 *,/,RTCCIIR =0 x1;/*,使能秒增量中断 *,/,RTCAMR =0 xff;/*,禁止报警中断 *,/,RTCYEAR =pusRtcTime0;/*,设置时间计数寄存器 *,/,RTCMONTH=pusRtcTime1;,RTCDOM =pusRtcTime2;,RTCDOW =pusRtcTime3;,RTCHOUR =pusRtcTime4;,RTCMIN =pusRtcTime5;,RTCSEC =pusRtcTime6;,zyIsrSet(NVIC_RTC,(unsigned long)rtcIntIsr,PRIO_TWO);/*,设置中断并使能 *,/,RTCCCR =0 x01;/*,启动,RTC */,return(1);,RTC,应用案例,int main(void),INT16U usTimeSet7=2014,3,12,3,11,11,11;/*,设定,RTC,的初始时间 *,/,targetInit();/*,硬件初始化 *,/,pinInit();/*,引脚初始化 *,/,rtcInit(usTimeSet);/*RTC,初始化 *,/,keyInit();/*,键盘初始化 *,/,vicSysPconSet(3);/*,进入深入掉电模式 *,/,while(1),targetInit();/*,硬件初始化 *,/,rtcTimeDisplay();/*,刷新当前时间 *,/,keyscan();/*,键盘扫描 *,/,vicSysPconSet(3);/*,再次进入深度掉电模式*,/,部分程序代码,RTC,初始化,目 录,RTC,概述,1,RTC,引脚描述和配置,2,寄存器描述,3,RTC,基本操作,4,RTC,总结,5,RTC,总结,整体来说,,LPC1700,系列,ARM,的,RTC,模块操作比较简单,但需要注意以下几点:,芯片从掉电模式下被唤醒,需要对目标板重新初始化。,RTC,的闰年计算比较简单,当年计数器的最低两位为,0,时,认为该年为闰年,如,2100,年时就会出错。,测试,RTC,的低功耗模式需脱机运行,且当芯片处于睡眠模式时只能采用,ISP,下载程序。,
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6