1.单次计时器、定期计时器
借助 ThreadX 应用程序计时器,应用程序能够按特定的时间间隔执行应用程序 C 函数。 应用程序计时器也可能只过期一次。 这种类型的计时器称为单次计时器,而重复间隔计时器称为定期计时器 。
2.计时器间隔
在threadx中,时间间隔通过定期计时器中断来测量。每个计时器中断称为计时器时钟周期。 计时器时钟周期之间的实际时间由应用程序指定,但 10 毫秒是大多数实现的标准时间。
3.计时器准确性
计时器过期时间根据时钟周期指定。 达到每个计时器时钟周期时,指定到期值将减一。 由于应用程序计时器可在计时器中断(或计时器时钟周期)之前启用,因此,实际过期时间可能会提前一个时钟周期。
4.计时器执行
应用程序计时器按照其激活的顺序执行。 例如,如果创建了三个具有相同过期值的计时器并已激活,这些计时器对应的过期函数将保证按它们激活的顺序执行
5.计时器性能信息
可通过tx_timer_performance_info_get 和 tx_timer_performance_system_info_get获得
(1) 整个系统的总数
激活数、停用数、重新激活数(定期计时器)、expirations、过期调整数
(2) 每个应用程序计时器的总数
激活数、停用数、重新激活数(定期计时器)、expirations、过期调整数
6.计时器控制块 TX_TIMER
7.计时器过多
默认情况下,应用程序计时器在优先级为 0 时运行的隐藏系统线程中执行,该线程的优先级通常比任何应用程序线程都高。 因此,在应用程序计时器内进行处理应保持最小值。
如果可能,还应尽可能避免使用在每个时钟周期过期的计时器。 这种情况可能导致应用程序的开销过大。
8.相对时间
除了前面所述的应用程序计时器,ThreadX 还提供单个连续递增的 32 位时钟周期计数器。 每次发生计时器中断时,时钟周期计数器或时间就会加一。
应用程序可以通过分别调用 tx_time_get 和 tx_time_set 来读取或设置此 32 位计数器。 此时钟周期计数器的使用完全由应用程序确定。 ThreadX 不在内部使用此计时器