一、介绍

Real time clock(RTC),实时时钟,它是一个可由软件配置的实时时钟模块,可以直接输出年、月、日、时、分、秒。
在RT1064中,RTC用的是Secure Non-Volatile Storage (SNVS),安全非易失性存储。其中 RTC 只是 SNVS 外设中的一个功能。
大多数操作系统都是利用时间戳和计时元年来计算当前时间的,而这个时间戳和计时元年大家都取了同一个标准——UNIX 时间戳和 UNIX 计时元年。UNIX 计时元年被设置为格林威治时间 1970 年 1 月 1 日 0 时 0 分 0 秒。
RT1064的RTC编程比较简单,SDK有提供例程。

二、初始化

SNVS 的结构体配置主要用来配置 RTC 是否需要校准以及周期性中断频率。
typedef struct _snvs_hp_rtc_config
{bool rtcCalEnable;              /*!< true: RTC calibration mechanism is enabled;false:No calibration is used */uint32_t rtcCalValue;           /*!< Defines signed calibration value for nonsecure RTC;This is a 5-bit 2's complement value, range from -16 to +15 */uint32_t periodicInterruptFreq; /*!< Defines frequency of the periodic interrupt;Range from 0 to 15 */
} snvs_hp_rtc_config_t;

这个结构体使用默认配置即可。

//获取默认配置
SNVS_HP_RTC_GetDefaultConfig(&snvsRtcConfig);
//初始化RTC
SNVS_HP_RTC_Init(SNVS, &snvsRtcConfig);
//启动RTC
SNVS_HP_RTC_StartTimer(SNVS);

这个时候如果获取时间,得到的时间就是UNIX 计时元年,也就是1970 年 1 月 1 日 0 时 0 分 0 秒。

三、设置时间

结构体 snvs_hp_rtc_datetime_t用来配置年、月、日、时、分、秒这几个参数。
typedef struct _snvs_hp_rtc_datetime
{uint16_t year;  /*!< Range from 1970 to 2099.*/uint8_t month;  /*!< Range from 1 to 12.*/uint8_t day;    /*!< Range from 1 to 31 (depending on month).*/uint8_t hour;   /*!< Range from 0 to 23.*/uint8_t minute; /*!< Range from 0 to 59.*/uint8_t second; /*!< Range from 0 to 59.*/
} snvs_hp_rtc_datetime_t;

设置时间使用的函数是SNVS_HP_RTC_SetDatetime(),使用方法也很简单,将设置好的日期作为参数传入这个函数即可。

snvs_hp_rtc_datetime_t rtcDate;rtcDate.year   = 2021;
rtcDate.month  = 9;
rtcDate.day    = 29;
rtcDate.hour   = 0;
rtcDate.minute = 0;
rtcDate.second = 0;SNVS_HP_RTC_SetDatetime(SNVS, &rtcDate);

四、获取时间

获取时间使用函数SNVS_HP_RTC_GetDatetime()。

日期参数就存储在rtcData里了。

SNVS_HP_RTC_GetDatetime(SNVS, &rtcDate);

NXP RT1064学习笔记(六)— RTC相关推荐

  1. NXP RT1064学习笔记(一)— 开发环境

    最近在做RT1064的开发,网上能找到的资料不多,基本上都是NXP官方的资料,于是决定自己写笔记做个记录. i.MX RT1064 简介 i.MX RT1064 处理器属于全新的处理器系列,采用恩智浦 ...

  2. Ethernet/IP 学习笔记六

    Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...

  3. 吴恩达《机器学习》学习笔记六——过拟合与正则化

    吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...

  4. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  5. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  6. JS学习笔记六:js中的DOM操作

    1. JS学习笔记六:js中的DOM操作 文章目录 1. JS学习笔记六:js中的DOM操作 1.1. 获取Dom节点 1.2. 元素属性的操作方式 1.3. DOM节点的创建.插入和删除 1.4. ...

  7. Python学习笔记六——画小猪佩奇

    目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  9. 学习笔记:RTC时钟

    学习笔记:RTC时钟 1.什么是RTC (1) RTC是个独立的定时器.RTC拥有一个连续计数的计数器. (2)注意:RTC模块和时钟配置系统(RCC_BDCR寄存器)工作在后备区域,系统断电或者复位 ...

最新文章

  1. java代码讲解_Java基础系列-代码块详解
  2. Docker网络解决方案 - Calico部署记录
  3. elasticsearch 第二篇(配置篇)
  4. 在MATLAB function中可变的变量数据类型
  5. 调用其他文件的define_C与C++的互相调用!就像大学宿舍一样,我用你的,你用我的!...
  6. 6,synchronized, lock 区别
  7. Django学习笔记10
  8. python string类型_Python的基本数据类型——String
  9. B树、B-树、B+树、B*树【转】,mysql索引
  10. wordpress获取当前登录用户信息的方法
  11. 【kafka】kafka duplicate brokers in replica assignment
  12. jquery筛选方法-选取父子元素
  13. 装饰器结构应用与基本使用(611)
  14. 基于PIE-Engine实现交互式植被覆盖度估算及分级统计
  15. 微软mes杀毒更新服务器搭建,我的系统的不能用Microsoft Update更新的啊
  16. SCI写作经典替换词、核心词汇大集合
  17. ESP32/ESP32S2直连腾讯云,实现微信小程序控制
  18. 360奇舞团钟恒:选用Vue.js进行组件化开发,我们遇到了哪些坑?
  19. java JSON格式字符串数组 转 数组
  20. ROS rosbridge

热门文章

  1. 大牛教学 | 在51单片机上用C语言实现循环点亮8盏LED灯
  2. ping协议(ICMP)的原理
  3. Typora主题推荐及资源
  4. 7、树莓派音频——jackd进阶篇
  5. Nmap常用命令总结
  6. 人力资源管理的毕业论文选题推荐?
  7. 使用lgb.cv时出现ValueError: Supported target types are: (‘binary‘, ‘multiclass‘). Got ‘continuous‘ instea
  8. Linux系列:给网卡添加IP地址方法
  9. 图像数据的标准化与归一化
  10. 可口可乐市场调查失败的原因_可口可乐公司一次不成功的市场调查