一文透析SYSTICK的寄存器


《《《《《正文》》》》》


 

《什么是systick?》

这是一个24位的系统节拍定时器system tick timer,SysTick,具有自动重载和溢出中断功能,所有基于Cortex_M3处理器的微控制器都可以由这个定时器获得一定的时间间隔。

它是集成在内核里,并不是外扩的功能模块,因此它具有很高的通用性;


 

《systick的作用》

在单任务引用程序中,因为其架构就决定了它执行任务的串行性,这就引出一个问题:当某个任务出现问题时,就会牵连到后续的任务,进而导致整个系统崩溃。

要解决这个问题,可以使用实时操作系统(RTOS).因为RTOS以并行的架构处理任务,单一任务的崩溃并不会牵连到整个系统。这样用户出于可靠性的考虑可能就会基于RTOS来设计自己的应用程序。SYSTICK存在的意义就是提供必要的时钟节拍,为RTOS的任务调度提供一个有节奏的“心跳”。

这样存在就可以减低移植的难度;


 

《寄存器详解》

在《Cortex-M3权威指南》中有下图:

1、COUNTFLAG表示倒计到0时,会置1。

2、CLKSOURCE表示时钟源选择。外部时钟和内核时钟。

3、ENABLE表示使能\关闭systick。

4、RELOAD表示当计数值倒计到0时,则重新载入计数值的数值设置。

5、CURRENT表示写它可以使计数值清零。

 

他们在库文件中的名称映射;在core_cm3.h文件中:

他们都在SysTick这个结构体中,地址偏移的对应:

  • systick控制及状态寄存器  ==>SysTick->CTRL ==0xE000E010

  • systick重装载数值寄存器 ==>SysTick->LOAD==0xE000E014

  • systick当前数值寄存器 ==>SysTick->VAL==0xE000E018


 

 


《《《《《END》》》》》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值