====== OSA : OS_Dtimer_Get ====== **_OST_DTIMER OS_Dtimer_Get (dtimer)**\\ === === Get dynamic timer's remaining time. Before calling this service you should do one of these things: * disable interrupts * enter critical section * stop timer with ##[[en:osa:ref:allservices:OS_Dtimer_Stop|OS_Dtimer_Stop]]## service Otherwise the timer's value can be changed in an interrupt while reading. ##[[en:osa:ref:appendix:configuration#Timer control|OS_ENABLE_DTIMERS]]## constant must be defined in ##[[en:osa:ref:appendix:configuration|OSAcfg.h]]##. Size of dynamic timers is set by ##[[en:osa:ref:appendix:configuration#Data types|OS_DTIMER_SIZE]]## constant === Call allowed: === Everywhere === Parameters: === {| class = "fpl" |- |//''dtimer''// |Descriptor of dynamic timer. Variable of ##[[en:osa:ref:description:data_types#OST_DTIMER|OST_DTIMER]]## type. Contains timer counter, timer state flags and pointer to next timer in list. For PIC16, can only be allocated in **bank0** or **bank1** |} === Returns: === {| class = "fpl" |- |//''[[en:osa:ref:description:data_types#_OST_DTIMER|_OST_DTIMER]]''// | integer value of remaining time (in system ticks) |- |} === Example: === OST_DTIMER dtimer; void Task (void) { for (;;) { /*...*/ OS_Dtimer_Pause(dtimer); if (OS_Dtimer_Get(dtimer) < 10) // Flash green led if less GREEN_LED = 1; // than ten ticks remain OS_Dtimer_Continue(dtimer); /*...*/ } } === Old style name === **OS_GetDTimer**\\ === See also === * [[en:osa:ref:allservices:OS_Dtimer_Create|OS_Dtimer_Create]] * [[en:osa:ref:allservices:OS_Dtimer_Delete|OS_Dtimer_Delete]] * [[en:osa:ref:allservices:OS_Dtimer_Run|OS_Dtimer_Run]] * [[en:osa:ref:allservices:OS_Dtimer_Continue|OS_Dtimer_Continue]] * [[en:osa:ref:allservices:OS_Dtimer_Update|OS_Dtimer_Update]] * [[en:osa:ref:allservices:OS_Dtimer_Add|OS_Dtimer_Add]] * [[en:osa:ref:allservices:OS_Dtimer_Stop|OS_Dtimer_Stop]] * [[en:osa:ref:allservices:OS_Dtimer_Pause|OS_Dtimer_Pause]] * [[en:osa:ref:allservices:OS_Dtimer_Check|OS_Dtimer_Check]] * [[en:osa:ref:allservices:OS_Dtimer_IsActive|OS_Dtimer_IsActive]] * [[en:osa:ref:allservices:OS_Dtimer_IsStopped|OS_Dtimer_IsStopped]] * [[en:osa:ref:allservices:OS_Dtimer_IsRun|OS_Dtimer_IsRun]] * [[en:osa:ref:allservices:OS_Dtimer_Wait|OS_Dtimer_Wait]] * [[en:osa:ref:allservices:OS_Dtimer_Delay|OS_Dtimer_Delay]] ---- * [[en:osa:ref:services:alphabetical|Alphabetical]] * [[en:osa:ref:services:brieflist|All services]] ~~UP~~