LPC1768 -- RTC实时时钟

发布者:自由思想最新更新时间:2018-07-24 来源: eefocus关键字:LPC1768  RTC  实时时钟 手机看文章 扫描二维码
随时随地手机看文章

RTC是当下设备中比较普遍的一个部件,很多设备都需要查看时间。RTC实时时钟已经在很多的单片机中集成,以前还要专门的时钟芯片,现在Cortex-M3内核都包括了这个部件了。和以前NXP的ARM7内核不同的是,LPC1768的时钟源只有32K时钟源提供,这一点是要注意的,其他和ARM7一致。
RTC其实也就是一个定时,可以理解为秒定时器,RTC寄存器挺多的,不过寄存器结构相对简单,操作起来还是很方便的。
讲解几个重要的寄存器,中断位置寄存器ILR、时钟控制寄存器CCR、计数器增量中断寄存器CIIR、报警屏蔽寄存器AMR
第一个ILR中断位置寄存器

BIT0,当为1时计数器增量模块产生中断。
BIT1,当为1是报警寄存器产生中断
    第二个CCR时钟控制寄存器



BIT0,时钟时能位,为1是时能

BIT1,复位CTC。
BIT4,校准时能
第三个CIIR计数器增量中断寄存器

有上图可以很清楚看出,分别表示年月日时分秒,相应的位置为,就产生相应的中断,比较设置成0x01,既每秒产生一次中断,设置成0x02,既每分钟产生一次中断。
第四个,AMR报警屏蔽寄存器

这个是寄存器是屏蔽相应的报警位,和CIIR位定义相同。
至于其他寄存器像年月日时分秒这个寄存器可以直观知道它的用途,就不在一一描述。
看看软件设计

typedef struct _TIME_TYPE        //时间类型定义

{

    INT8U sec;    //秒

    INT8U min;    //分

    INT8U hour;    //时

    INT8U dom;    //日

    INT8U mon;    //月

    INT8U dow;    //星期

    INT16U year;//年

}Time_Type;

void SETNowTime(Time_Type * pdata)

{

    LPC_RTC->SEC = pdata->sec;

    LPC_RTC->MIN = pdata->min;

    LPC_RTC->HOUR = pdata->hour;

    LPC_RTC->DOM = pdata->dom;

    LPC_RTC->MONTH = pdata->mon;

    LPC_RTC->DOW = pdata->dow;

    LPC_RTC->YEAR = pdata->year;

}

Void RTC_Init (Time_Type * pdata)

{

    LPC_RTC->CCR   = 0x0; //禁止时钟时能,准备初始化RTC

    LPC_RTC->ILR   = 0x03;//清除中断

    LPC_RTC->CIIR  = 0x00;//不产生中断

    LPC_RTC->AMR   = 0xff; //屏蔽所有报警中断

SETNowTime (pdata);   //设置时间

    NVIC_EnableIRQ(RTC_IRQn);  //时能RTC中断

NVIC_SetPriority(RTC_IRQn, 9);//设置中断优先级

LPC_RTC->CCR   = 0x01;  // 启动RTC 

    LPC_RTC->CCR   = 0x01;  //启动RTC计数器  

}

void RTCTimeSend (void)

{

    USART0_printf("%02d年%02d月%02d日 %02d:%02d:%02d\r\n",

LPC_RTC->YEAR,LPC_RTC->MONTH,LPC_RTC->DOM,

LPC_RTC->HOUR,LPC_RTC->MIN, LPC_RTC->SEC);

}

void  RTC_IRQHandler(void)

{

     RTCTimeSend();//发送时间

     LPC_RTC->ILR = 0x01; //清除中断

}


关键字:LPC1768  RTC  实时时钟 引用地址:LPC1768 -- RTC实时时钟

上一篇:LPC1768 WAV播放器 笔记
下一篇:S3C2440裸板WM8976声卡驱动实现

推荐阅读最新更新时间:2024-03-16 16:09

STM32基础10--实时时钟RTC
前言 在做51单片机项目时,如果需要年月日时分秒的时间记录,会在51单片机上面外挂一个DS1302的时钟芯片,再加上时间芯片的外围电路。但在STM32F407中,不再需要这么干了,因为在STM32的内部就已经集成了年月日时分秒的时钟电路--也就是实时时钟(RTC) RTC框图 下图是RTC的框图,箭头部分是实时时钟基本部分,包括时钟源,预分频,影子寄存器,引脚复用输出。此外还有两个闹钟,周期唤醒,入侵检测以及时间戳。 STM32实时时钟电路 在开发板上有低速外部时钟源-32.768Khz。 功能需要 1)配置当前时间 时间可以采取24小时格式,也可以采用12小时格式,默认采用24小时
[单片机]
STM32基础10--<font color='red'>实时时钟</font>(<font color='red'>RTC</font>)
stm32f070 stop 模式 rtc定时启动调试总结
stm32f070 stop 模式 rtc定时启动调试总结。 1.在进stoop模式之前一定对gpio进行配置。 /* GPIO Ports Clock Enable */ __HAL_RCC_GPIOA_CLK_ENABLE(); __HAL_RCC_GPIOB_CLK_ENABLE(); __HAL_RCC_GPIOF_CLK_ENABLE(); /Configure GPIO pins : GPIO_PIN_All/ GPIO_InitStruct.Pin = GPIO_PIN_All; GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; GPIO_InitStruct.Pull = GPI
[单片机]
stm8L时钟配置RTC配置
介绍 电池在满足MCU最小供电状态下,无论MCU是运行、低功耗或重启状态,RTC一直处于工作状态。 主要特性如下: 日历功能 周期唤醒 事件触发 脉冲输出 配置RTC时钟源 RTC时钟源可选HSE,LSE,HSI或LSI。 为确保RTC精确工作,要求系统时钟(SYSCLK)必须等于或大于4*RTCCLK值。如果系统时钟(SYSCLK)为LSE或LSI,则RTC时钟必须等于系统时钟(SYSCLK),并且禁用RTC同步机制(置位RTC_CR1寄存器RATIO位)。 配置RTC时钟源为LSE,1分频,即32768Hz。 1. 等待CLK_CRTCR:RTCSWBSY位复位,然后设置CLK_CRTCR值为0x10;
[单片机]
stm8L时钟配置<font color='red'>RTC</font>配置
何谓STM32F单片机的RTC校准功能
在STM32里面有备份寄存器(BKP),它的功能之一就是用来存储RTC校验值的校验寄存器,即具有RTC校准功能。在PC13引脚上输出RTC 校准时钟,RTC闹钟或者秒脉冲。在程序中有#define RTCCLOCkOutput_Enable /*RTC Clock/64 is output on tamper PIN(PC.13)*/ BKP可以用来存储84个字节的用户应用程序数据,他们处在备份域里,当Vdd电源被切断时,他们仍然由Vbat维持供电。 判断RTC后备寄存器1的值是否为事先写入的某个值,如果不是,则说明RTC是第一次上电,需要配置RTC。针对BKP也有相应的库函数。 u16 BKP_ReadBacku
[单片机]
stm32休眠_RTC定时唤醒来喂狗
在STM32开发中经常会用到独立看门狗(IWDG)和低功耗模式,看门狗是为了检测和解决由软件错误引起的故障,低功耗模式是为了在CPU不需要继续运行时进入到休眠模式用以节省电能。其中独立看门狗的时钟由独立的RC振荡器(STM32F10x一般为40kHz)提供,即使在主时钟出现故障时,也仍然有效,因此可以在停止和待机模式下工作。而且独立看门狗一旦启动,除了系统复位,它不能再被停止。但这样引发的一个问题是当MCU进入到低功耗模式后由于CPU停止运行无法喂狗,会导致系统频繁复位。那如何解决这个问题呢,难道独立看门狗和低功耗模式没法同时使用? 一个很好的方式是在休眠模式下通过RTC定时唤醒来喂狗,喂完够在进入继续进入到休眠模式。比如看门
[单片机]
STM32 RTC时钟配置
一、RTC使用说明    “RTC”是Real Time Clock 的简称,意为实时时钟。stm32提供了一个秒中断源和一个闹钟中断源,修改计数器的值可以重新设置系统当前的时间和日期。   RTC模块之所以具有实时时钟功能,是因为它内部维持了一个独立的定时器,通过配置,可以让它准确地每秒钟中断一次。但实际上,RTC就只是一个定时器而已,掉电之后所有信息都会丢失,因此我们需要找一个地方来存储这些信息,于是就找到了备份寄存器。其在掉电后仍然可以通过纽扣电池供电,所以能时刻保存这些数据。   配置RTC前须知:   BKP:后备区域,通过BKP后备区域来存储RTC配置的数据可以让其在系统复位或待机模式下唤醒后,RTC里面配
[单片机]
基于ARM的LPC1768微控制器启动过程
基本概念(CMSIS): Cortex Micro-controller Software Interface Standard,微控制器软件接口标准。 2. CMSIS标准的文件结构: a) core_cm.c (stdint.h) b) system_.c (core_cm, system_) c) startup_.s 其中core_cm.c以及core_cm中为内核设访问层,其中定义了定义了内核中得外设几丁质以及一些内核的访问及控制函数。 startup_.s文件是系统的启动文件,其包括堆和栈的初始化配置、中断向量表的配置以及将程序引导到main()函数等功能。 system_和system_.c文件则是
[单片机]
12864液晶显示实时时钟
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。 下面是一段12864液晶显示实时时钟的程序: /*************************************************************************************** 时间:2012.11.30 晶振:11.0592MHz 芯片:STC89C52RC 功能描述:在12864上显示年、月、日
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved