RTC 滴答计时器

news2024/11/24 3:10:34

 1. RTC 滴答计时器

1.1 寄存器配置

RTCCON RTC控制寄存器

[7:4] = 0000   设置频率

[8] = 1 使能滴答计时器

TICNT

32位滴答时间计数值。

滴答计时器是一个上行计数器。如果当前的滴答数达到这个值,滴答时间中断发生。

备注:该值必须大于3

周期= (n + 1)/滴答时钟源频率

(n =滴答计数器值)

rtc_tic----main.c


#include"exynos_4412.h"
#include"uart.h"

//rtc作为滴答定时器使用

/*
 * 滴答计时器初始化
 * 参数:tic :滴答时钟计数 32768HZ 输入
 * 初始化完成后自动开始
 */
void rtc_tic_init(unsigned int tic)
{
    //设置寄存器RTCCON[7:4]位,设置滴答计时器子时钟源选择,
    //这里设置为0000,及时钟源为32.768KHz
    RTCCON = RTCCON & (~(0xF << 4));

    //设置寄存器RTCCON[8]位置1,滴答计时器使能
    RTCCON = RTCCON | (0x1 << 8);

    //配置TICCNT寄存器,这里设置为32.768KHz,1s发生一次中断
    //周期= (n + 1)/滴答时钟源频率
    //(n =滴答计数器值)
    TICCNT = tic;

    //GIC 面向中断源
    //开启总中断
    ICDDCR = ICDDCR | 0x1;

    //配置端口中断使能
    ICDISER.ICDISER2 = ICDISER.ICDISER2 | (0x1 << 13);

    //配置端口优先级 优先级设置为5  rtc_alarm 中断id  77
    ICDIPR.ICDIPR19 = ICDIPR.ICDIPR19 & (~(0xFF << 8)) | (5 << 8);

    //配置中断源送去哪个cpu处理 0x1表示直送cpu0
    ICDIPTR.ICDIPTR19 = ICDIPTR.ICDIPTR19 & (~(0xFF << 8)) | (0x1 << 8);

    //GIC 面向cpu
    //cpu响应中断使能  =1 使能  =0 不使能
    CPU0.ICCICR = CPU0.ICCICR | 0x1;

    //配置cpu过滤优先级
    CPU0.ICCPMR = CPU0.ICCPMR | 255;

}

void rtc_tic_interrupt_clear(void)
{
    RTCINTP = RTCINTP | (0x1 << 0);   //清RTC中断标志位
    ICDICPR.ICDICPR2 = ICDICPR.ICDICPR2 | (0x1 << 13);  //清除GIC中断标志位
}

void do_irq(void)
{
    unsigned int irq_num;
    irq_num = CPU0.ICCIAR & 0x3FF;  //获取中断号
    switch(irq_num)
    {
        case 77:
        rtc_tic_interrupt_clear();
        printf("rtc_tic time interrupt!\r\n");
        break;

    }

    //最后清除cpu中断挂起
    //写入中断id清除对应中断挂起
    CPU0.ICCEOIR = irq_num;

}
int main()
{
    int a = 100;
    uart_init();
    printf("hello!a=%d\r\n",a);

    //周期= (n + 1)/滴答时钟源频率
    //(n =滴答计数器值)
    rtc_tic_init(32767);

    while(1);
    return 0;
}


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

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

相关文章

文件制作二维码的图文教学,多种格式都可以使用

现在我们经常会发现在扫描二维码的时候&#xff0c;可能一个二维码中会存在多个文件或者多个二维码中会显示不同的文件的&#xff0c;那么这些文件存入二维码中是用什么方法制作的呢&#xff1f; 文件二维码的制作方法其实很简单&#xff0c;只需要通过文件二维码生成器工具的…

这都2024年了 你还要多久才能领悟 LinkedList 源码

这都2024年了 你还要多久才能领悟 LinkedList 源码 文章目录 这都2024年了 你还要多久才能领悟 LinkedList 源码LinkedList 简介LinkedList 插入和删除元素的时间复杂度&#xff1f;LinkedList 为什么不能实现 RandomAccess 接口&#xff1f; LinkedList 源码分析初始化插入元素…

【数据结构之二叉树的构建和遍历】

数据结构学习笔记---009 数据结构之二叉树1、二叉树的概念和结构1.1、回顾二叉树的重要性质1.2、回顾二叉树的主要分类1.1、如何实现二叉树&#xff1f; 2、二叉树的实现2.1、二叉树的BinaryTree.h2.2、二叉树的BinaryTree.c2.2.1、二叉树的构建2.2.2、二叉树销毁2.2.3、二叉树…

RabbitMQ入门概念

目录 一、RabbitMQ入门 1.1 rabbitmq是啥&#xff1f; 1.2 应用场景 1.3 AMQP协议与RabbitMQ工作流程 1.4 Docker安装部署RabbitMQ 二、SpringBoot连接MQ配置 2.1 示例1 2.1 示例2 —— 发送实体 一、RabbitMQ入门 1.1 rabbitmq是啥&#xff1f; MQ&#xff08;Message…

Hutool导入导出用法

整理了下Hutool导入导出的简单使用。 导入maven或jar包&#xff08;注意这里导入的poi只是为了优化样式&#xff09; <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all --> <dependency><groupId>cn.hutool</groupId><artifactId&g…

Kube-Promethus配置Nacos监控

Kube-Promethus配置Nacos监控 前置&#xff1a;Kube-Promethus安装监控k8s集群 一.判断Nacos开启监控配置 首先通过集群内部任一节点访问Nacos的这个地址<NacosIP>:端口号/nacos/actuator/prometheus&#xff0c;查看是否能够获取监控数据。 如果没有数据则修改Nacos集群…

qt中使用mysql 数据库

QT 版本介绍 虽然版本是这个&#xff0c;但是工作目录确是&#xff1a; 下面陈述安装步骤 第一步&#xff1a; 就是安装MYSQL 数据库&#xff0c;在此不再赘述了&#xff0c;很多博主已经上传了。 第二步&#xff1a; 就是拷贝QT 对应mysql 的版本驱动到 QT 的编译器文件中…

基于人工智能的质量保证(QA)流程

AI模型质量保证需知 推出准确、可靠、公正的人工智能&#xff08;AI&#xff09;模型无疑是一项挑战。设法成功实施AI计划的企业很可能意识到&#xff0c;AI质量保证&#xff08;QA&#xff09;流程与传统QA流程迥然不同。 质量保证对于AI模型的准确性至关重要&#xff0c;不…

SD卡写保护无法格式化怎么办?

一般来说&#xff0c;写保护&#xff08;也称为只读&#xff09;是数据存储设备防止写入新数据或修改旧信息的能力。换句话说&#xff0c;您可以读取存储在磁盘上的信息&#xff0c;但是却不能删除、更改或复制它们&#xff0c;因为访问会被拒绝。那么SD卡有写保护怎么格式化呢…

【图像拼接 精读】Parallax-Tolerant Unsupervised Deep Image Stitching

【精读】Parallax-Tolerant Unsupervised Deep Image Stitching 在这篇论文中&#xff0c;"warp"&#xff08;变形&#xff09;和"composition"&#xff08;组合&#xff09;是两个关键的概念。"Warp"指的是图像变形的过程&#xff0c;用于调整…

【乳腺肿瘤诊断分类及预测】基于LVQNN学习向量量化神经网络

课题名称&#xff1a;基于LVQ神经网络的乳腺肿瘤诊断&#xff08;类型分类&#xff09; 版本日期&#xff1a;2023-03-10 运行方式: 直接运行0501_LVQ0501.m 文件即可 代码获取方式&#xff1a;私信博主或QQ&#xff1a;491052175 模型描述&#xff1a; 威斯康辛大学医学院…

NetCore实现输入用户名和密码后访问Swagger页面

1 原理说明 在后端编程时&#xff0c;通常使用swagger文档来呈现接口文档。为了接口的安全性&#xff0c;可通过输入用户名和密码的方式来进行验证。 这里用到了Basic认证方式。原理图如下&#xff1a; 步骤 1&#xff1a; 当请求的资源需要 B A S I C \textcolor{red}{BA…

力扣238. 除自身以外数组的乘积(前后缀和)

Problem: 238. 除自身以外数组的乘积 文章目录 题目描述思路复杂度Code 题目描述 思路 思路1&#xff1a; 1.先求取数组的包括当前下标值得前后缀乘积&#xff08;利用两个数组记录下来分别为leftProduct和rightProduct&#xff09; 2.当求取一个下标为i的数组中的元素&#x…

正则表达式补充以及sed

正则表达式&#xff1a; 下划线算 在单词里面 解释一下过程&#xff1a; 在第二行hello world当中&#xff0c;hello中的h 与后面第一个h相匹配&#xff0c;所以hello中的ello可以和abcde匹配 在world中&#xff0c;w先匹配h匹配不上&#xff0c;则在看0&#xff0c;r&#…

【Java 数据结构】LinkedList与链表

LinkedList与链表 1. ArrayList的缺陷2. 链表2.1 链表的概念及结构2.2 链表的实现 3. LinkedList的模拟实现4.LinkedList的使用4.1 什么是LinkedList4.2LinkedList的使用 5. ArrayList和LinkedList的区别 1. ArrayList的缺陷 上节课已经熟悉了ArrayList的使用&#xff0c;并且…

多头 eRCD(Multi-Headed eRCD)

&#x1f525;点击查看精选 CXL 系列文章&#x1f525; &#x1f525;点击进入【芯片设计验证】社区&#xff0c;查看更多精彩内容&#x1f525; &#x1f4e2; 声明&#xff1a; &#x1f96d; 作者主页&#xff1a;【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#xff0c…

在哪里申请SSL证书

其实只是单纯的申请SSL证书来说&#xff0c;渠道还是比较多的。只是需要格外注意在申请SSL证书的过程中&#xff0c;对于自身需求的认知。 首先最重要的是&#xff0c;该证书是否可信。就目前而言&#xff0c;非可信根的证书是无法与主流浏览器兼容的&#xff0c;会时常发生风险…

503 Service Temporarily Unavailable nginx 原因和解决办法

前言 HTTP 503 Service Temporarily Unavailable 错误通常表示服务器无法处理请求&#xff0c;可能是由于服务器过载、维护或其他临时性问题导致的。在 Nginx 中&#xff0c;这种错误通常与后端服务的可用性问题相关。以下是可能的原因和解决办法&#xff1a; 正文…

RTC实时时钟之读取时间

1. RTC 基本介绍 RTC(Real Time Clock) 即实时时钟&#xff0c;它是一个可以为系统提供精确的时间基准的元器件&#xff0c;RTC一般采用精度较高的晶振作为时钟源&#xff0c;有些RTC为了在主电源掉电时还可以工作&#xff0c;需要外加电池供电 2. RTC 控制器 2.1 RTC的特点是:…

VxTerm:SSH工具中的中文显示和乱码时的相关信息和一些基本的知识

当我们写的程序含有控制台(Console)输出时&#xff0c;如果输入内容包含中文时&#xff0c;我们一般需要知道下面的信息&#xff0c;才能正确的搞清楚怎么处理中文显示的问题&#xff1a; 1、实际程序或文件中的实际编码&#xff1a; Linux下的应用程序和文本文件&#xff0c;…