2012-12-20 1 views
0

TickCounter 인터럽트에 사용되는 카운터의 값을 가져올 가능성이 있는지 알고 싶습니다.한 번만 카운터에 액세스하십시오.

목적 :

내가 현재의 틱이 레지스터의 값을 알고 싶어요.

내가 이것을 평가할 수 있도록. 예를 들어

,

틱 (12)과 레지스터 내가 더 정확한 시계를 가질 수 있도록 1526 그래서 나는 틱 카운터 (기본이 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 */ 

을 발견하지만 간단하고 정답은 바로() tickGet를 호출하는 것입니다 vxAbsTicks

답변

1

에 액세스 할 수 없습니다.

+0

그러나 tickGet은 1x – user1829804

+0

의 올바른 해상도를 제공합니다. vxAbsTicks의 올바른 점은 내 질문에 대한 답변입니다. "어떻게 vxAbsTciks를 읽을 수 있습니까?" 답변 : tickGet()을 호출하십시오. 그러나 귀하의 게시물은 실제로 질문을하지 않습니다, 나는 단지 그것이 당신이 알고 싶어하는 것이라고 생각했지만,이 의견에 기초하여 나는 당신이 알고 싶은 것을 확신하지 못했습니다. 그래서 당신의 질문은 무엇입니까? –

+0

감사합니다. – user1829804