gpt4 book ai didi

c - 处理辅助时钟中断

转载 作者:行者123 更新时间:2023-11-30 15:30:45 25 4
gpt4 key购买 nike

我有来自嵌入式应用程序的大型代码库的以下代码。我正在尝试理解代码并有以下问题。

old_rate = sysAuxClkRateGet();
sysAuxClkRateSet(50);

sysAuxClkConnect ((FUNCPTR) scanDispatcher, 0);

/* Enable dispatcher */

sysAuxClkEnable ();

我的问题是

  1. scanDispatcher 是在每个刻度时调用还是在 50 个刻度后调用?

  2. 是sysAuxClkRateSet(50);意味着我们每秒有 50 个刻度?我的理解对吗?

最佳答案

每次调用辅助时钟ISR来处理辅助时钟中断时,辅助时钟ISR都会调用scanDispatcher(参数为0)。

sysAuxClkRateSet(50) 定义辅助时钟中断的频率。由于辅助时钟驱动程序 ISR 除了管理定时器设备和调用 scanDispatcher 例程之外不执行其他操作,因此您可以更改频率。

您可以使用的频率值有两种限制:

  1. 辅助时钟驱动程序(您正在使用的 BSP 的一部分)定义驱动程序能够管理的绝对最小值和最大值
  2. 真正的最大限制是由scanDispatcher引入的系统负载及其执行时间来定义的;请记住,无论如何,scanDispatcher 是在中断时执行的,因此它的执行时间应该总是很短。

最后一个警告:辅助时钟不是 VxWorks 中的强制设备:大多数 BSP 支持辅助时钟设备,但(原则上)您可能会找到不支持它的 BSP。

关于c - 处理辅助时钟中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25404236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com