定时器基础:分类及影子寄存器功能解析
需积分: 0 6 浏览量
更新于2024-01-30
收藏 2.74MB DOCX 举报
《定时器笔记1》总结
定时器是嵌入式系统开发中常用的一个模块,常用于计时、周期性任务触发等应用。本文主要讲解了定时器的基本概念和分类,以及一些相关的编程问题。
一、定时器的分类
定时器一般分为基本定时器、通用定时器和高级定时器三种,区别在于功能的多少。基本定时器功能最简单,通用定时器功能相对较多,高级定时器则更加复杂强大。三者的层次关系为:基本定时器 < 通用定时器 < 高级定时器。
二、影子寄存器的作用
影子寄存器是定时器中的一个缓冲寄存器,起到一个缓存作用。它的作用是将用户设置的值缓存到寄存器中,待下次计数结束后才会起作用。如果没有影子寄存器,用户设置的值会直接起作用。影子寄存器实际上就是我们所说的“数据缓存”。
三、PCLK1和PCLK2时钟问题
PCLK1和PCLK2是与定时器相关的两个时钟信号。这里的“如果预分配系数=1,则频率不变,否则频率x2”指的是APB1和APB2的分频,而不是PSC的分频系数。通过计算可得,当APB1二分频时,TIM2~7的时钟频率为36MHz \times 2 = 72MHz,APB1未分频时,TIM1/8的时钟频率为72MHz。
四、定时器的编程问题
1. 如何实现定时500ms?
实际上,定时器的计数周期是有限的,无法准确计时500ms。但可以通过一个中断和一个全局变量来实现,在定时器中断中,每次触发中断时,全局变量time加1。定义一个定时器的时基,使用定时器中断每隔一定时间触发一次,然后通过全局变量累加来实现定时功能。
2. 定时器中断问题
中断是定时器常用的触发方式之一,当定时器计数满足一定条件时,触发中断。通过在中断服务函数中对任务进行处理,可以实现定时任务的执行。
以上为《定时器笔记1》的总结内容,主要介绍了定时器的基本概念、分类和一些常见的编程问题。定时器在嵌入式系统开发中应用广泛,掌握定时器的原理和使用方法对系统开发非常重要。
2011-04-27 上传
2022-08-03 上传
2023-07-27 上传
2023-07-21 上传
2023-11-03 上传
2023-05-11 上传
2023-08-20 上传
2023-08-10 上传
奔跑的楠子
- 粉丝: 32
- 资源: 299
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析