在RT-Thread中,当系统滴答定时器时间到了的时候,就会执行void SysTick_Handler(系统滴答定时器中断处理函数)这个回调函数(中断处理函数) 可以发现在void SysTick_Handler()这个函数中,首先会执行中断入口函数,然后void rt_tick_increase对rt_tick(系统滴答时钟,初值为0,静态全局变量)进行自加操作,会记录从启动到现在...
rt-thread的系统时钟模块采用全局变量rt_tick作为系统时钟节拍,该变量在系统时钟中断函数中不断加1。而系统时钟中断源和中断间隔一般由MCU硬件定时器(如stm32的嘀嗒定时器)决定,rt_tick初始值为0,每次MCU产生硬件定时中断后,在中断函数中不断加1,即rt_tick变量值与MCU硬件定时器定时中断间隔的乘积为系统真正运行时间...
这种模式是 RT-Thread 定时器默认的工作方式,定时器超时后,超时函数在系统时钟中断的上下文环境中执行。 这种情况下,对于超时函数的要求与中断服务例程的要求相同:执行时间应该尽量短、执行时不应该导致当前线程挂起等。否则会导致其他中断的响应时间加长,或抢占了其他线程执行的时间。 SOFT_TIMER 模式的定时器 这种工作...
RT-Thread定时器在使用的时候,为了确保定时器能正常运行,应该有以下注意事项: 1、应该根据不同的应用场合,设置系统的时钟节拍,时钟节拍一般是1 – 100ms,时钟节拍的数值越小,表示频率越快,系统的额外开销就会越大。 2、在系统节拍的中断函数里面,会不断检查硬件定时器链表,如果有定时器超时时间到达,就会去处理相应...
RT-Thread版本:4.1.0 1.创建工程 根据所使用的硬件信息,配置以上信息,注意红色框中的建议内容:工程用的是内部时钟,通常我们用的是外部时钟,需要修改drv_clk.c文件。 2.修改时钟配置函数 时钟的配置是在drivers/drv_clk.c文件中,函数system_clock_config()完成的,可以看到用的是内部时钟HSI。配置外部时钟可以由Cu...
RT-Thread第4课,听听RT-Thread 的心跳,再学习一下基于心跳的软件定时器使用。 前言 学习RTOS,肯定接触到软件定时器,学会软件定时器的使用能够使得我们摆脱硬件定时器在某些地方的局限性,而软件定时器的实现,又是基于系统的时钟节拍,本文除了了解 RT-Thread 软件定时器API,学会使用 RT-Thread 软件定时器,还需要先了...
RT-Thread第4课,听听RT-Thread 的心跳,再学习一下基于心跳的软件定时器使用。 前言 学习RTOS,肯定接触到软件定时器,学会软件定时器的使用能够使得我们摆脱硬件定时器在某些地方的局限性,而软件定时器的实现,又是基于系统的时钟节拍,本文除了了解 RT-Thread 软件定时器API,学会使用 RT-Thread 软件定时器,还需要先了...
一、RT-Thread 时钟节拍 1.1 时钟节拍的概念 1.2 时钟节拍实现原理 1.3 时钟节拍示例 二、RT-Thread 软件定时器 2.1 软件定时器基本介绍 2.2 系统定时器初始化 2.3 定时器工作机制 2.4 us 延时函数 2.5 软件定时器 or 硬件定时器? 三、 RT-Thread 软件定时器操作函数 ...
本文尝试从以下几个方面总结一下RT-Thread时钟管理的学习过程 时钟相关的概念描述 什么是时钟节拍?任何操作系统都需要人为地提供一个时钟节拍,通常这个时钟节拍被称为系统心跳,而且这个系统心跳是通过一个硬件定时器来周期性提供的。这个时钟节拍就好像我们生活里面的钟表的秒针一样,每过一秒,秒针活动一格。 在操作系统...