Linux下的RTC应用

news2024/12/23 5:45:21

RTC


RTC基础知识

1. RTC简介

RTC 全称是 Real-Time clock,翻译过来是实时时钟。实时时钟在日常生活中的应用也比较泛,比如电子时钟。实时时钟可以为系统提供精确的实时时间,通常带有电池,可以保证系统断电时还可以正常工作,保证时间不丢失。

2. RTC方案

  1. 方案一:内部RTC。功耗高,成本低
    1725782446132

  2. 方案二:外部RTC。功耗低,成本高
    1725782474127

3. RTC原理

rtc的原理为:通过外部晶振和电容,产生一个稳定的时钟信号,通过计数器来计算时间。

4. RTC子系统框架

1725783126977

5. data 和 hwclock 命令

Linux下有两个时间,一个是系统时间,一个是RTC时间

  • 系统时间:是Linux系统启动后,通过系统时钟来计算的时间,系统时钟是CPU内部的时钟,系统启动后,系统时间会从RTC时间中获取,然后通过系统时钟来计算系统时间。

  • RTC时间:是RTC模块的时间,RTC模块是独立于CPU的时钟模块,RTC模块的时间是独立的,不受系统启动的影响。

  • data命令:用于查看系统时间

  • hwclock命令:用于查看RTC时间

6. RTC时间同步

系统时间与RTC时间同步,可以保证系统断电后,系统时间不丢失。

7. 在应用程序中操作RTC

在应用程序中操作RTC,需要使用Linux系统提供的接口,如rtc_set_time和rtc_get_time等。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/rtc.h>
int main(int argc,char** argv){
    int fd;
    fd = open("/dev/rtc",O_RDONLY);
    if(fd < 0){
        printf("Error opening rtc\n");
        exit(1);
    }
    struct rtc_time rtc;
    //读时间
    int ret = ioctl(fd,RTC_RD_TIME,&rtc);
    if(ret < 0){
        printf("Error reading rtc\n");
        exit(1);
    }
    printf("RTC time: %d-%d-%d %d:%d:%d\n",rtc.tm_year+1900,rtc.tm_mon+1,rtc.tm_mday,rtc.tm_hour,rtc.tm_min,rtc.tm_sec);
    //设置时间
    rtc.tm_year = 2024-1900;
    rtc.tm_mon = 9-1;
    rtc.tm_mday = 8;
    rtc.tm_hour = 16;
    rtc.tm_min = 30;
    rtc.tm_sec = 0;
    ret = ioctl(fd,RTC_SET_TIME,&rtc);
    if(ret < 0){
        printf("Error setting rtc\n");
        exit(1);
    }

    close(fd);
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2116886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM虚拟机 - 基础篇

一、初始JVM 1. JVM是什么 2. JVM的三大核心功能是什么&#xff1f; 3. 常见的JVM虚拟机有哪些&#xff1f; 二、字节码文件详解 1. Java虚拟机的组成 2. 字节码文件的组成 &#xff08;1&#xff09;基本信息 Magic魔数 主副版本号 &#xff08;2&#xff09;常量池 &#…

RabbitMQ练习(AMQP 0-9-1 Overview)

1、What is AMQP 0-9-1 AMQP 0-9-1&#xff08;高级消息队列协议&#xff09;是一种网络协议&#xff0c;它允许遵从该协议的客户端&#xff08;Publisher或者Consumer&#xff09;应用程序与遵从该协议的消息中间件代理&#xff08;Broker&#xff0c;如RabbitMQ&#xff09;…

Day19_0.1基础学习MATLAB学习小技巧总结(19)——MATLAB绘图篇(2)

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍&#xff0c;为了在这个过程中加深印象&#xff0c;也为了能够有所足迹&#xff0c;我会把自己的学习总结发在专栏中&#xff0c;以便学习交流。 参考书目&#xff1a;《MATLAB基础教程 (第三版) (薛山)》 之前的章节都是…

H5漂流瓶社交系统源码

一个非常有创意的H5漂流瓶社交系统源码&#xff0c;带完整前端h5和后台管理系统。 环境&#xff1a;Nginx 1.20.1-MySQL 5.6.50-PHP-7.3 代码下载

python简单计算入门教程|加减法

python通过调用numpy模块&#xff0c;非常擅长数学计算。再通过调用matplotlib模块&#xff0c;可以自由自在地输出numpy计算的结果。 今天&#xff0c;我们就尝试一些基本计算。 下述是正弦函数和余弦函数的加法和减法计算结果。 图1 代码为&#xff1a; import matplotli…

【stata】处理城市名和城市代码

写了两个简单的外部命令&#xff0c;在这里分享一下&#xff0c;希望能帮到大家 1.citycode_mutate 第一个命令是citycode_mutate&#xff0c;用于识别字符串中可能存在的城市信息&#xff0c;并生成城市代码&#xff08;图1图2&#xff09;。 2.cityname_mutate 第二个命令…

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_word(struct pci_…

C++(一)----C++基础

1.C的发展史 C语言诞生后&#xff0c;很快普及使用&#xff0c;但是随着编程规模增大且越来越复杂&#xff0c;并且需要高度的抽象和建模时&#xff0c;C语言的诸多短板便表现了出来&#xff0c;为了解决软件危机&#xff0c;上世纪八十年代&#xff0c;计算机界提出了oop&…

拓扑排序-广度优先遍历思路

本质&#xff1a; 【广度优先遍历 】【贪心算法】应用于【有向图】的专有名词 应用场景&#xff1a;任务调度&#xff0c;课程安排 作用&#xff1a; 得到一个不唯一的【拓扑序】检测【有向图】是否有环&#xff0c;使用数据【并查集】 使用&#xff1a;先找度为0的前驱节点…

Linux运维排查常见故障_在tmp目录下有大量包含picture_ 的临时文件,每天晚上2 30需要对一天前的文件进行

echo“”>>/etc/security/limits.conf echo“*softnproc65535″>>/etc/security/limits.conf echo“*hardnproc65535″>>/etc/security/limits.conf echo“*softnofile65535″>>/etc/security/limits.conf echo“*hardnofile65535″>>/etc/secur…

【自动驾驶】控制算法(八)横向控制Ⅲ | 代码与模型

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…

以太网--TCP/IP协议(一)

概述 以太网是局域网的一种&#xff0c;其他的比如还有令牌环、FDDI。和局域网对应的就是广域网&#xff0c;如Internet&#xff0c;城域网等。 从网络层次看&#xff0c;局域网协议主要偏重于低层&#xff08;业内一般把物理层、数据链路层归为低层&#xff09;。以太网协议…

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP…

vue动态统计图的绘画

效果图&#xff1a; 实现&#xff1a; 一、导入依赖 import echarts from echarts 二、vue的代码实现 1.在main.js导入文件 // 引入 echarts 插件 import echarts from echarts // 配置成全局组件 Vue.prototype.$echarts echarts2.代码实现 <template><!--为echa…

韩国火烧车影响出现,浙江出现限制电车进入地下车库,车主难受了

韩国电动汽车起火&#xff0c;烧毁140辆汽车&#xff0c;还导致大楼损坏以及居民受伤的后果&#xff0c;如今在中国市场也产生了影响&#xff0c;《华商报》旗下的《大风新闻》报道指&#xff0c;浙江多地的饭店、大厦禁止电动汽车进入地下车库&#xff0c;这下子电动汽车车主又…

滑动窗口在算法中的应用

滑动窗口是一种经典的算法技巧&#xff0c;就像在处理一系列动态数据时&#xff0c;用一扇可以滑动的“窗口”来捕捉一段连续的子数组或子字符串。通过不断地移动窗口的起点或终点&#xff0c;我们能够以较低的时间复杂度来解决一系列问题。在这篇文章中&#xff0c;我们将通过…

图形视频处理软件Adobe After Effects(AE)2024WIN/MAC下载及系统要求

目录 一、Adobe AE软件简介 1.1 什么是Adobe AE软件 1.2 AE软件的发展历程 1.3 AE软件的应用领域 二、Adobe AE软件下载 2.1 下载 2.2 下载注意事项 三、Adobe AE软件系统要求 3.1 最低配置要求 3.2 推荐配置要求 3.3 显示器和分辨率 四、Adobe AE软件安装与使用 …

【MacOS】mac定位服务中删除已经卸载的软件

mac定位服务中删除已经卸载的软件 网上的帖子真不靠谱 直接右键 WeTypeSettings &#xff0c;查找位置&#xff0c;丢废纸篓即可&#xff01;会提示你卸载的&#xff01;

Pyramid: Real-Time LoRa Collision Decoding with Peak Tracking技术思考与解读

一点点个人的论文解读、技术理解&#xff0c;难免会有错误&#xff0c;欢迎大家一起交流和学习~~ &#x1f600;作者关于lora的系列文章从问题陈述到方法论的提出&#xff0c;再到实验评估&#xff0c;文章结构条理清晰&#xff0c;逻辑性强&#xff0c;并深入分析了LoRa信号处…

力扣刷题(5)

整数转罗马数字 整数转罗马数字-力扣 思路&#xff1a; 把各十百千位可能出现的情况都列出来&#xff0c;写成一个二维数组找出该数的各十百千位&#xff0c;与数组中的罗马元素对应 const char* ch[4][10]{{"", "I", "II", "III"…