我从嵌入式应用程序的大代码库中获得以下代码。我正在尝试理解代码并提出以下问题。
old_rate = sysAuxClkRateGet();
sysAuxClkRateSet(50);
sysAuxClkConnect ((FUNCPTR) scanDispatcher, 0);
/* Enable dispatcher */
sysAuxClkEnable ();
我的问题是
是否为每个滴答或50个滴答后调用scanDispatcher?
是sysAuxClkRateSet(50);意味着我们每秒有50个滴答?我的理解是对的。
答案 0 :(得分:1)
辅助时钟ISR每次调用它时都会调用scanDispatcher(带参数0)来处理辅助时钟中断。
sysAuxClkRateSet(50)定义辅助时钟中断的频率。由于辅助时钟驱动程序ISR不执行除管理计时器设备和调用scanDispatcher例程之外的其他操作,因此您可以更改频率。
您可以使用的频率值有两种限制:
最后提醒:辅助时钟不是VxWorks中的强制设备:大多数BSP支持辅助时钟设备,但(原则上)您可以找到不支持它的BSP。