====== 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~~