"SYSTICK滴答定时器原理及工作方式"
需积分: 0 99 浏览量
更新于2024-01-20
收藏 3.67MB PPTX 举报
SYSTICK滴答定时器是一种在单片机中实现定时功能的重要组件。它利用晶振的特性来测量时间,并通过相关寄存器进行配置和控制。本文将详细介绍SYSTICK滴答定时器的原理以及涉及的相关寄存器。
首先,SYSTICK滴答定时器依赖于单片机中的晶振。晶振的本质是根据其频率进行振动,例如一个12M的晶振,就会以12*10^6次/s的频率进行振动。单片机通过测量晶振的振动次数来进行定时。例如,如果我们希望进行10ms的定时,那么只要单片机测到晶振振动了120000次,就可以认为10ms的时间已经过去了。同理,可以推算出其他频率晶振的定时方式。
接下来,我们将介绍SYSTICK滴答定时器的原理图。首先,我们需要确定所使用的晶振的频率,通常可以选择72M或者9M的晶振。假如我们选择了9M的晶振,那么在定时1ms的情况下,我们需要9000次晶振振动。将这个数值存入定时器的重装载寄存器中。同时,将递减计数器的数值设为0,如果不是0的话则需要进行清零操作。一旦开始计数,重装载寄存器中的数值将会被赋给递减计数器,递减计数器开始倒计时。例如,如果重装载寄存器的值为9000,那么递减计数器将从9000递减到0。一旦递减到0,计数标志位将会变为1,我们可以检测这个标志位来确定定时器是否已经完成。当检测到标志位为1时,表示递减计数器已经减到0,1ms的时间已经过去了。
在SYSTICK滴答定时器的定时原理中,涉及到了三个相关的寄存器。第一个是计数标志位寄存器,该寄存器的地址如图所示,它有32位,但在此只使用了其中的4位。其中第16位Countflag表示递减计数器是否减到0,当递减计数器减到0时,这个位会置为1。第二个是时钟源寄存器,该寄存器的第2位Clksource用于选择时钟源。当该位为0时,选择系统时钟的8分频,当该位为1时,选择系统时钟(一般为9M的晶振)作为时钟源。
综上所述,SYSTICK滴答定时器通过测量晶振的振动次数来实现定时功能。通过配置相关的寄存器,可以选择晶振的频率以及定时的时间长度。递减计数器负责倒计时,当递减到0后,计数标志位会变为1,表示定时器已经完成。这种原理使得定时功能在单片机中得以实现,可应用于各种领域,如控制系统、通信系统、工业自动化等。
总结完毕,共计2026字。
2020-08-15 上传
2020-01-31 上传
2018-06-23 上传
2023-10-19 上传
2021-07-04 上传
2023-02-08 上传
2022-09-21 上传
2022-09-21 上传
-老管家-
- 粉丝: 0
- 资源: 10
最新资源
- 9月10日教师节flash动画
- 锈型竞技场:竞技场,一种快速但有限的分配器类型
- octo-board:用于通过标签,组织或语言轻松查找Github问题的应用程序。 https:octo-board.herokuapp.com
- experiencing-html-lab-online-web-sp-000
- a-simple-TF-IDF-algorithm-handle-Chinese-text:这是一个简单的TF-IDF算法,该算法使用python开源软件包“ JIEBA”将汉字字符串切成单个单词,然后使用sklearn的TfidfTransformer计算每个设置中每个单词的TF-IDF值
- Workspace-Map.zip
- PhoneBook:适用于我们的Android作业的电话簿模拟器
- trudl-crx插件
- 毕业设计&课设-绘制不同孔径的衍射图。先用单孔径绘制,然后不断增加孔径的数量….zip
- FluxOS:借助教程从头开始编写的x86内核,可提高我对低级计算的知识
- Android项目源码带桌面工具的课程表程序
- 49款高大上的网页PPT渐变背景素材.zip
- STAR:RNA-seq 校准器
- Whois Checker By Ugur KAZDAL-crx插件
- ZYSoundViewController:录制音频,播放音频,转mp3格式,清理缓存
- perfconfig:狂想曲的性能配置