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