RTC 滴答计时器

2024-02-01 06:12
文章标签 rtc 计时器 滴答

本文主要是介绍RTC 滴答计时器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 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.768KHzRTCCON = 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  77ICDIPR.ICDIPR19 = ICDIPR.ICDIPR19 & (~(0xFF << 8)) | (5 << 8);//配置中断源送去哪个cpu处理 0x1表示直送cpu0ICDIPTR.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;
}

这篇关于RTC 滴答计时器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/666298

相关文章

HarmonyOS】ArkTS学习之基于TextTimer的简易计时器的elapsedTime最小时间单位问题

本文旨在纪录自己对TextTimer使用过程的疑惑问题 我在查看教程时候,发现很多博客在onTimer(event: (utc: number, elapsedTime: number) => void) 这里提到elapsedTime:计时器经过的时间,单位为毫秒。我不清楚是否为版本问题。 在我查看version11和version10的api时候,说的都是设置格式的最小单位。 经过个人检验的

解读:以RTC为基,AI为脑的“超拟人”AI实时互动解决方案

我们打造了一款满足想象与应用的智能体——AI实时互动。 谈谈AI智能体 当AI变得足够聪明时,用户与AI的交互将变得真实自然。于是,构建高拟真AI与用户的实时交互,已经成为企业提升数智化生产力的新思路。 在这个交互过程中,存在一个极具活力的对象,就是智能体(AIAgent)。 顾名思义,“智能体”利用人工智能,能够基于内部状态、感知到的信息或外部输入,来做出决策并执行动作。它具有

51单片机-DS1302(RTC时钟显示,代码内改变,内设的24年9月5日,上午11:12:00)

一、DS1302时序及命令字 两个操作:写操作和读操作 写操作:        (由我们单片机一个控制引脚控制DS1302的IO口写入)首先就是通过时序图把我们的命令字写入,命令字是控制我们对应要写入的年月日,时分秒等配置的关键寄存器,只有设置好命令字相关参数才能写入相关的年月日等时间信息,一个写时序共2个字节,第一个字节是我们的命令字,第二个字节是我们要写入的数据(此数据为16进制写入,最

(素材源码)猫猫学IOS(十)UI之_NSTimer_ios计时器

猫猫分享,必须精品 素材代码地址:http://download.csdn.net/detail/u013357243/8533157 原文地址:http://blog.csdn.net/u013357243?viewmode=contents 先看效果 ps:新建iOS交流学习群:304570962 可以加猫猫QQ:1764541256 或则微信znycat 让我们一

猫猫学IOS(十)UI之_NSTimer_ios计时器

猫猫分享,必须精品 素材代码地址:http://blog.csdn.net/u013357243/article/details/44627787 原文地址:http://blog.csdn.net/u013357243?viewmode=contents 先看效果 代码 原文地址:http://blog.csdn.net/u013357243?viewmode=cont

新路程------hi3516a 内置rtc调试

这个文章写得很全http://blog.csdn.net/qq_29350001/article/details/52681621,这里记录一下测试的内容 到sdk的package/drv/rtc目录下编译rtc_test.c 然后把编译好的可执行文件放到板子文件系统里去,chmod给个权限 1.确认时间设置成功 先设置再读回 /usr # ./matt -s time 2017/8/2

Android开发Timer计时器的操作实例

本文内容讲的是Android开发中Timer计时器如何实现。实际上Timer和TimerTask都是JDK自带的功能,两个类结合可以实现定时任务执行一次,或者定期重复执行任务。 下面模拟一个Android开发Timer计时器实例:   1、新建一个项目:Lesson34_Timer2、MainActivity.java代码如下:   package basic.android.timer

RTC(实时时钟)/BKP(备份寄存器

1 unix时间戳 2 时间戳转换函数 3  BKP(备份寄存器) 1 TAMPER引脚侵入事件  2  RTC校准时间 3 RST闹钟脉冲和秒脉冲         可以输出出来为其他信号提供  4 校准时钟,寄存器加输出RTC校准时钟   5 总结:3个功能只能同时使用一个 4 BKP基本结构 5  RTC框图   6  RTC硬件电路

ScrollView计时器循环滚动

MainActivity中代码如下,我都做了相关的注释,很清晰 package com.safly.myapplication;import android.animation.Animator;import android.animation.ObjectAnimator;import android.animation.ValueAnimator;import android.gr

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-22读写I2C接口的RTC时钟芯片

软件版本:VIVADO2021.1 操作系统:WIN10 64bit 硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台:米联客-MLK-H3-CZ08-7100开发板 板卡获取平台:https://milianke.tmall.com/ 登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑! 目录 1概述