访问计数器一个刻度

时间:2012-12-20 09:25:46

标签: vxworks

我想知道是否有可能获得用于TickCounter中断的计数器的值。

目的:

我想知道当前的Tick和该寄存器的值。

这样我就可以对此进行评估。

例如,

tick是12,寄存器是1526.所以我可以实现一个使用Tick计数器(基本1ms)和寄存器的虚拟时钟,以便我有一个更精确的时钟。

编辑:

我找到了这个实现

> #ifndef CERT /*******************************************************************************
> *
> * tickGet - get the value of the kernel's tick counter
> *
> * This routine returns the current value of the tick counter.
> * This value is set to zero at startup, incremented by tickAnnounce(),
> * and can be changed using tickSet().
> *
> * RETURNS: The most recent tickSet() value, plus all tickAnnounce() calls since.
> *
> * SEE ALSO: tickSet(), tickAnnounce()
> * 
> * INTERNAL
> * There should be no need to lock interrupts on this one; the compiler should
> * only generate a read from one half of the UINT64 which means that the read
> * can never be interrupted.
> */
> 
> ULONG tickGet (void)
>     {
>     return (ULONG) (vxAbsTicks & 0xFFFFFFFFull);
>     }
> #endif /* !CERT */

但我无法访问vxAbsTicks

1 个答案:

答案 0 :(得分:1)

简单而正确的答案是调用tickGet()。