====== OSA : OS_Stimer_Alloc ======
**OS_Stimer_Alloc (var_stimer_id)**\\
=== ===
{{osa:ref:attr_call_not_int.png|Нельзя вызывать из прерывания}}{{osa:ref:attr_call_to.png|Сервис использует таймаут}}
Выделяет свободный статический таймер и возвращает номер его ID.
Для использования статических таймеров в файле ##[[osa:ref:appendix:configuration|OSAcfg.h]]## нужно определить константу ##[[osa:ref:appendix:configuration#Содержание данных|OS_STIMERS]]##. Разрядность статических таймеров задается константой ##[[osa:ref:appendix:configuration#Типы данных|OS_STIMER_SIZE]]##.
Для использования этого сервиса в файле ##[[osa:ref:appendix:configuration|osacfg.h]]## должна быть определена константа ##[[osa:ref:appendix:configuration#System constants|OS_STIMERS_ENABLE_ALLOCATION]]##
=== Разрешен вызов: ===
Только не из прерывания
=== Параметры сервиса: ===
{| class = "fpl"
|-
|//''var_stimer_id''//
| Переменная типа ''unsigned char'', в которую будет сохранен ID свободного таймера. 0xFF, если свободный таймер не был найден
|}
=== Возвращаемое значение: ===
{| class = "fpl"
|-
|//''##[[osa:ref:allservices:OS_IsError|OS_IsError]]##()''//
|возвращает true, если свободного таймера нет
|}
=== Пример вызова: ===
void Task (void)
{
static char stimer;
for (;;) {
/*...*/
OS_Stimer_Alloc(stimer); // Выделяем его.
if (!OS_IsError())
{
/* работаем с таймером */
}
OS_Stimer_Delete(stimer); // Освобождаем таймер
/*...*/
}
}
=== См. также ===
* [[osa:ref:allservices:OS_Stimer_Alloc|OS_Stimer_Alloc]]
* [[osa:ref:allservices:OS_Stimer_Free|OS_Stimer_Free]]
* [[osa:ref:allservices:OS_Stimer_Found|OS_Stimer_Found]]
* [[osa:ref:allservices:OS_Stimer_Run|OS_Stimer_Run]]
* [[osa:ref:allservices:OS_Stimer_Break|OS_Stimer_Break]]
* [[osa:ref:allservices:OS_Stimer_Wait|OS_Stimer_Wait]]
* [[osa:ref:allservices:OS_Stimer_Delay|OS_Stimer_Delay]]
* [[osa:ref:allservices:OS_Stimer_Get|OS_Stimer_Get]]
* [[osa:ref:allservices:OS_Stimer_Check|OS_Stimer_Check]]
* [[osa:ref:allservices:OS_Stimer_IsRun|OS_Stimer_IsRun]]
* [[osa:ref:allservices:OS_Stimer_Pause|OS_Stimer_Pause]]
* [[osa:ref:allservices:OS_Stimer_Continue|OS_Stimer_Continue]]
----
* [[osa:ref:services:alphabetical|Алфавитный указатель]]
* [[osa:ref:services:brieflist|Все сервисы]]
~~UP~~