当前位置: 首页 > news >正文

S32K3平台RTC应用笔记

  1. Real Time Clock(RTC)概述
    S32K3xx 有一个 RTC 和 API(自主周期中断)定时器,都能执行 32 位的比较。
    1.1 RTC 资源和配置
    RTC 始终处于 ON 域,因此在 RUN 模式和 STANDBY 模式下都可用。 RTC 和 API 计
    时器可以产生中断以及从低功耗模式唤醒。
    RTC 在高速的内部时钟下支持 1us 的分辨率(1/48MHz*48 计数)。
    该芯片通过时钟源 SIRC 和 SXOSC 支持功能复位期间的无缝 RTC 操作。
    API 可以不用停止定时器的情况下改变定时器的比较值。
    API 还能和比较器模块结合使用,在待机模式下,API 被配置产生一个 START/NEXT 类
    型信号去通知比较器这个比较必须被捕捉。
    S32K3xx MCU 的 RTC 硬件资源介绍如表 1.1 所示。
    表 1.1 S32K3 系列 RTC 资源

在这里插入图片描述

1.2 RTC 介绍
RTC 是用于时间保持应用的不同步计数器,RTC 可以被配置为预定义的时间间隔生成
中断,而与操作模式(运行模式或低功耗模式)无关。如果处于低功耗模式,到达 RTC 间
隔,则 RTC 首先产生唤醒,然后断言中断请求。RTC 还支持 API 功能,用于生成定期唤醒
请求以退出低功耗模式或中断请求。
RTC 的时钟源,如图 1.1 所示。在这里插入图片描述
1.3 RTC 特性
RTC 有以下特性:
 32 位计数器
 可选的计数器时钟源 0/1/2/3
 可选 512 预分频和 32 预分频用于运行计数器
 RTC 中断
 计数器运行在所有操作模式下
 当软件失能计数器或者 RTC 复位,RTC 计数器将会复位
 API 支持以下内容:
–32 位比较值支持间隔/中断的范围
–RTC 正在运行,API 也能改变比较值
–API 中断
–运行在所有模式
–RTC 运行中,API 比较值能够被修改
 可选择的中断:RTC 匹配,API 匹配和 RTC 溢出在这里插入图片描述
在这里插入图片描述
1.5 操作模式
1.5.1 功能模式
 正常模式:所有 RTC 寄存器能被读写,RTC/API 和对应中断能选择使能。
 低功耗模式:总线失能,如果进入低功耗模式之前 RTC 和 API 是使能的,则保持
使能。
1.5.2 Debug 模式
进入 Debug 模式时,如果 FRZEN,RTC 计数器冻结最后的有效值。退出后,计数器解
除冻结,继续在冻结值的基础上继续运行。
3. Real Time Clock(RTC)配置说明
3.1 版本说明
本次配套例程所使用的 SDK 包版本为 4.0.0。
3.2 SDK 配置详解
3.2.1 配置时钟
参考图 3.1 配置时钟,配置如图 3.2 所示,红色框处为四个 RTC 时钟源。
在这里插入图片描述
在这里插入图片描述
3.2.2 配置 RTC
点击如图 3.3 所示红色部分进入到如图 3.3 所示 RTC 相关配置界面。在这里插入图片描述
下面将对如何对 RTC 配置进行详解。
其中对与 RTC 模块的配置如下图 3.4 和图 3.5 所示红色部分,根据需求对其进行相应配
置即可。在这里插入图片描述
配置完成后即生成代码,生成的配置代码结构体部分如程序清单 3.1 所示。结构中的成
员就是上面的 SDK 配置参数。
程序清单 3.1 配置代码结构体
Rtc_Ip_ConfigType RTC_0_InitConfig_PB =
{
/** @brief RTC Freeze Enable /
(boolean)(FALSE),
/
* @brief DivBy512 Prescaler enable /
(boolean)(FALSE),
/
* @brief DivBy32 Prescaler enable /
(boolean)(FALSE),
/
* @brief RTC Clock Source /
RTC_IP_CLOCK_SOURCE_0,
/
* @brief RTC callback name /
&RtcNotification,
/
* @brief RTC callbackparam /
(uint8)0
};
4. 例程程序解读
4.1 例程 1:RTC-IRQ
例程说明:本例程使用立功科技开发板基于 SDK v4.0.0 进行 RTC 配置,程序实现 RTC
获取真实时间,并触发中断,指示灯根据定时周期翻转。
配置 SDK,时钟根据 3.2.1 配置,PIT 通道配置如图 4.1 所示,PIT 硬件配置如图 4.2 所
示。
在这里插入图片描述
系统时钟初始化、指示灯引脚初始化之后,初始化 RTC 以及各通道在指定计数周期内
触发中断,这部分代码如程序清单 4.1 所示。
程序清单 4.1 RTC 部分程序
/
系统时钟初始化 /
Clock_Ip_Init(&Clock_Ip_aClockConfig[0]);
/
失能和清除 API 中断,否则上电启动进入中断 /
Rtc_Ip_DisableInterrupt(RTC_INST, RTC_IP_API_INTERRUPT);
/
指示灯引脚初始化 /
Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0);
/
中断初始化 /
IntCtrl_Ip_Init(&IntCtrlConfig_0);
IntCtrl_Ip_ConfigIrqRouting(&intRouteConfig);
/
初始化 RTC /
Rtc_Ip_Init(RTC_INST,&RTC_0_InitConfig_PB);
/
配置中断 /
Rtc_Ip_EnableInterrupt(RTC_INST);
/
定时器启动 /
Rtc_Ip_StartTimer(RTC_INST,RTC_PERIOD);
while (1)
{
/
RTC 获取当前时间 /
Rtc_Ip_GetTimeDate(RTC_INST, &nowtime);
/
对比时间,判断时间是否更新 /
if(memcmp(&lasttime, &nowtime, sizeof(Rtc_Ip_TimedateType)))
{
printf(“%d-%d-%d %d:%d:%d\r\n”,nowtime.year, nowtime.month, nowtime.day,
nowtime.hour, nowtime.minutes, nowtime.seconds);
}
/
记录值用于比较 /
lasttime = nowtime;
}
接下来就是 RTC 的中断服务函数实现 LED 标志位成立,主函数实现指示灯状态翻转,
根据 LED 电平可测试出定时的时间周期,具体程序如程序清单 4.2 错误!未找到引用源。所
示。
程序清单 4.2 中断服务函数
/
*

  • @brief Rtc notification called by the configured channel periodically
  • @details RTC API 比较值匹配回调函数
    /
    void RtcNotification(void)
    {
    Siul2_Dio_Ip_TogglePins(CH0_MAP_PORT, 1 << CH0_MAP_PIN);
    }
    /
    *
  • @details RTC Alarm 回调函数,RTC 比较值匹配触发
    /
    void Rtc_AlarmCallback(uint8 channel)
    {
    switch (channel) {
    /
    alarm 0 */
    case 0:
    Siul2_Dio_Ip_TogglePins(CH1_MAP_PORT, 1 << CH1_MAP_PIN);
    break;
    default:
    break;
    }
    }

文章转载自:

http://X0W7i65y.fbmrz.cn
http://jviEvqUW.fbmrz.cn
http://62JCRrUr.fbmrz.cn
http://k9ZjkdQq.fbmrz.cn
http://IBOrRp11.fbmrz.cn
http://teq6nz9c.fbmrz.cn
http://d7IyZ5U5.fbmrz.cn
http://e2bW76ZT.fbmrz.cn
http://Ag6s4rTy.fbmrz.cn
http://bBvOre9g.fbmrz.cn
http://xzsd4Sjx.fbmrz.cn
http://STWHzglf.fbmrz.cn
http://8QS1i81J.fbmrz.cn
http://MCWgKosQ.fbmrz.cn
http://ojN2BvMT.fbmrz.cn
http://C821SbdU.fbmrz.cn
http://EwZtieLb.fbmrz.cn
http://9NcJlCkN.fbmrz.cn
http://KqwEHdLh.fbmrz.cn
http://m5Vy42XC.fbmrz.cn
http://u9wTEUjg.fbmrz.cn
http://inXMfdKR.fbmrz.cn
http://IAfYtBmS.fbmrz.cn
http://WEGgyHeQ.fbmrz.cn
http://ivBBybzh.fbmrz.cn
http://sCiva0wA.fbmrz.cn
http://HRauM9C5.fbmrz.cn
http://t4mYG6Fs.fbmrz.cn
http://NIiZuA2s.fbmrz.cn
http://p6gGodkL.fbmrz.cn
http://www.dtcms.com/a/384981.html

相关文章:

  • 开源收银系统_大型收银系统源码_OctShop
  • UE5 蓝图接口函数类型知多少?
  • 【MySQL分库分表:海量数据架构的终极解决方案】
  • 深入解析 Apache RocketMQ架构组成与核心组件作用
  • Tomcat下载和安装教程(图文并茂,适合新手)
  • (用Maven)整合SpringBoot,SpringMVC,MyBatis
  • 数据结构---基于链式存储结构实现的双端队列
  • 【完整源码+数据集+部署教程】训练自动化:电杆基坑分割系统 yolov8-seg-C2f-CloAtt
  • 某发电替代扩建项目集控楼高大支模自动化监测
  • 什么是产品思维?产品经理如何提高产品思维?
  • Quat.js四元数完全指南
  • 34.Socket编程(UDP)(上)
  • 综合篇| 智能体平台dify、coze和n8n对比
  • Crond服务
  • LazyVim设置tab
  • 【无标题】好吧
  • 【Git】零基础入门:配置与初始操作实战指南
  • 云手机兼容性对游戏的重要性
  • Vue-color:Vue.js 专业颜色选择器组件库 – 支持Vue2/3,TypeScript,暗色主题
  • IntelliJ IDEA 的 Git 功能
  • 【更新至2024年】2009-2024年上市公司排污环保费用数据
  • Nmap图形化扫描工具 | 集成资产定期监控功能
  • 讲一讲cot蒸馏以及grpo的方式训练模型
  • 面试之Java基础
  • LeetCode 3325.字符至少出现K次的子字符串 I
  • 【Linux命令从入门到精通系列指南】cp 命令详解
  • Oracle重做日志(Redo Log):数据一致性的“守护者“
  • Linux的生产者消费者模型
  • 深度学习基础、pytorch使用①
  • 国产化PDF处理控件Spire.PDF教程:在 ASP.NET Core 中创建 PDF的分步指南