AT91RM9200---定时器简介
1.前言
- 系统定时器模块集成了3个不同的定时器
一个周期性间隔的定时器,用来为操作系统设置时基
一个看门狗定时器,可用于软件死锁时进行系统复位
一个实时时钟计数器用来记录流逝的时间
- 系统定时器时钟
这些定时器计数使用由PMC(电源管理控制器)提供的慢时钟,这个时钟的典型频率是32.768KHZ,系统定时器也可以配置成支持其它频率
- 定时器中断
系统定时器提供了一条中断线,连接到中断控制器,一般是作为终端控制器的中断源1,与debug单元和RTC共用一条中断线,需要通过寄存器进行区分。
2.系统定时器框架
- 硬件框架
图 系统定时器框架
- 定时器的用途
图 定时器的用途
3.功能介绍
- 系统定时器时钟
系统定时器只使用SCLK时钟
- 周期性间隔定时器
周期性间隔定时器用来为操作系统提供周期性的中断,PIT的reset值是0。
它是基于一个16位的递减计数器。它是通过将一个值预加载到ST_PIMR中。
当计数器达到0的时候,状态寄存器的PITS会被置位。如果使能中断,则会产生一个中断。计数器会自动加载初始值并启动。在任何时候加载ST_PIMR寄存器会立即采用新的初值并重新启动。
注意:ST_PIMR的周期如果小于MCK周期,则会产生不可预料的问题
- 看门狗定时器
看门狗定时器是防止软件陷入死锁的时候造成系统卡死
它是通过一个16位的递减寄存器实现,初始值由ST_WDMR进行设置。
Reset时的值为0x00020000。它是使用了slow clock的128分频,来达到最大的周期为256s(典型slow clk为32.768khz情况下),也就是每隔128个slow clock周期,计数器加1.
通常情况下,在看门狗定时器溢出之前,用户会通过设置ST_CR.WDRST重新加载看门狗定时器初值
如果溢出发生,会做如下操作
设置中断产生的 ST_SR ( 状态寄存器 ) 的 WDOVF 位
l如果ST_WDMR .RSTEN被设置会产生内部reset信号
l Reloads
and restarts the down counter.
写ST_WDMR寄存器不会加载并重启计数器。当ST_CR被写入,看门狗计数器会立即从ST_WDMR寄存器载入并重启,slow clock 128分频也会立即重置并重启。
- 实时时钟
实时时钟被用来计数流逝的秒数。它是基于一个20位的计数器,时钟是由slow
clk用编程值进行分频。Reset时这个值分频值被设置为0x8000。
当slow时钟采用32.768khz时,计数器则每隔1秒加1。20bit可以计数到1048576秒,多于12天的时间,然后回绕到0.
实时时钟可以在任何时候从ST_CRTR 寄存器读出值。
计数器的当前值和alarm寄存器ST_RTAR进行比较。如果计数值匹配,TC_SR寄存器的ALMS位被设置。
Reset后alarm寄存器被设置成最大值0.
20位计数器每次增加时,设置ST_SR中的RTTINC位,该位可用来启动中断,或产生一秒信号。
写 ST_RTMR 将立即对时钟分频器载入新值并重启,这同样会导致 20 位计数器复位
AT91RM9200---定时器简介的更多相关文章
- MFC的定时器OnTimer
本文总结来源出自鸡啄米,感谢鸡啄米.来源:http://www.jizhuomi.com/software/232.html 定时器简介 定时器,可以帮助开发者或者用户定时完成某项任务.在使用定时器时 ...
- STM32之定时器
一.定时器简介 1.时钟来源 2.定时器结构(以基本定时器为例) 二.基本定时器的编程方法 1.基本定时器的寄存器 2.例程 /** * @brief 定时器6的初始化,定时周期0.01s * @pa ...
- STM32学习笔记——定时器中断(向原子哥学习)
定时器中断 STM32 的定时器功能十分强大,有 TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和TIME7 等基本定时器.在本章中,我们将利 ...
- VS2010/MFC编程入门之四十四(MFC常用类:定时器Timer)
前面一节鸡啄米讲了CTime类和CTimeSpan类的使用,本节继续讲与时间有关的定时器.定时器并不是一个类,主要考虑到,提起时间的话就不能不说定时器,所以就把它放到CTime和CTimeSpan之后 ...
- VS2010/MFC编程入门之四十四:定时器Timer
前面一节鸡啄米讲了CTime类和CTimeSpan类的使用,本节继续讲与时间有关的定时器.定时器并不是一个类,主要考虑到,提起时间的话就不能不说定时器,所以就把它放到CTime和CTimeSpan之后 ...
- 使用系统定时器SysTick实现精确延时微秒和毫秒函数
SysTick定时器简介 SysTick定时器是存在于系统内核的一个滴答定时器,只要是ARM Cortex-M0/M3/M4/M7内核的MCU都包含这个定时器,它是一个24位的递减定时器,当计数到 0 ...
- VS2010-MFC(MFC常用类:定时器Timer)
转自:http://www.jizhuomi.com/software/232.html 前面一节讲了CTime类和CTimeSpan类的使用,本节继续讲与时间有关的定时器.定时器并不是一个类,主要考 ...
- STM32F103ZET6通用定时器
1.通用定时器简介 通用定时器是由一个可编程预分频器驱动的16位自动装载计数器构成.通用定时器可以应用于多种场合,如测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和PWM).使用通用定时 ...
- 灵动微电子ARM Cortex M0 MM32F0010 Timer定时器中断定时功能的配置
灵动微电子ARM Cortex M0 MM32F0010 Timer定时器中断定时功能的配置 目录: 1.Timer1高级定时器Timer3通用定时器Timer14基本定时器简介 2.Timer1高级 ...
- Go定时器--Timer
目录 前言 Timer 定时器 简介 使用场景 1. 设定超时时间 2. 延迟执行某个方法 Timer对外接口 1. 创建定时器 2. 停止定时器 3. 重置定时器 其他接口 1. After() 2 ...
随机推荐
- 【题解】 Codeforces Edu41 F. k-substrings (字符串Hash)
题面戳我 Solution 我们正着每次都要枚举从长到短,时间复杂度承受不了,但是我们可以发现一个规律,假设某次的答案为\(x\),那么这个字符串为\(A+X+B\)组成,无论中间的\(X\)是重叠还 ...
- 【BZOJ2434】【NOI2011】阿狸的打字机(AC自动机,树状数组)
[BZOJ2434]阿狸的打字机(AC自动机,树状数组) 先写个暴力: 每次打印出字符串后,就插入到\(Trie\)树中 搞完后直接搭\(AC\)自动机 看一看匹配是怎么样的: 每次沿着\(AC\)自 ...
- BZOJ 4671 异或图 | 线性基 容斥 DFS
题面 Description 定义两个结点数相同的图 G1 与图 G2 的异或为一个新的图 G, 其中如果 (u, v) 在 G1 与 G2 中的出现次数之和为 1, 那么边 (u, v) 在 G 中 ...
- [luogu2522][bzoj2301][HAOI2011]Problem b【莫比乌斯反演】
传送门:https://www.luogu.org/problemnew/show/P2522 题目描述 对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y ...
- luogu4182 [USACO18JAN] Lifeguards P (单调队列优化dp)
显然可以先把被覆盖掉的区间去掉,然后排个序,左.右端点就都是单调的 设f[i][j]表示前i个区间中删掉j个,而且钦定i不能删的最大覆盖长度 (如果不钦定,就要有一个删掉的状态,那我无法确定前面的到底 ...
- 获取泛型的class 反射
最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下. 由于Java泛型的实现机制,使 ...
- [POI2015]CZA
[POI2015]CZA p很小,讨论 p=0... p=1... p=2:n-1放左或者放右两种情况,剩下怎么放是固定的,模拟然后判断即可 p=3: 正着做要状压,类似放书和排座位那些题,考虑以某个 ...
- 收藏:c语言的多线程同步
1.<秒杀多线程第一篇 多线程笔试面试题汇总> 2.<秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别> 3.<秒杀 ...
- oracle 按 123456789 排序 而不是 1 10 11 2 这种
order by decode(trim(translate(cptm,'0123456789',' ')),null,to_number(cptm))
- 关于阿里云Centos服务器搭建Java网站不能访问的问题
首先阿里云提供的手册是没问题的 手工搭建 然后我在地址栏输入服务器地址之后总是提示无法访问! 输入命令 netstat -tunlp,80端口确实是在监听(这里不是8080,因为我在tomcat的配置 ...