#include "target.h"
#include "xcp.h"
#include "LocatedVars.h"
#include "osek.h"
/**
* This task is activated every 10ms.
*/
long OSTICKDURATION;
TASK( Task10ms )
{
void XCP_FN_TYPE Xcp_CmdProcessor( void );
uint32 startTime = GetQueryPerformanceCounter();
/* Trigger DAQ for the 10ms XCP raster. */
if( XCPEVENT_DAQ_OVERLOAD & Xcp_DoDaqForEvent_10msRstr() )
{
++numDaqOverload10ms;
}
/* Update those variables which are modified every 10ms. */
counter16 += slope16;
/* Trigger STIM for the 10ms XCP raster. */
if( enableBypass10ms )
{
if( XCPEVENT_MISSING_DTO & Xcp_DoStimForEvent_10msRstr() )
{
++numMissingDto10ms;
}
}
duration10ms = (uint32)( ( GetQueryPerformanceCounter() - startTime ) / STOPWATCH_TICKS_PER_US );
}
C ++から、通常の状況ではほとんどジッターなしで、特定の時間間隔で関数を呼び出すために正確なクロックに同期する最も簡単な(および/または最良の)方法は何でしょうか? 私は現在WINDOWSオペレーティングシステムに取り組んでいます。上記のコードは RTAS OSEK 用ですが、Windows オペレーティング システムの特定の時間間隔で関数を呼び出したいです。誰かがC ++言語で私を助けてくれますか??