Command disabled: backlink
 
Available Languages?:

OSA : OS_Dtimer_Get

OST_TIMER OS_Dtimer_Get (dtimer)

Сервис использует таймаут

Получить оставшееся время счета. Перед вызовом этого сервиса нужно:

  • либо запретить прерывания (OS_DI());
  • либо войти в критическую секцию;
  • либо остановить таймер сервисом OS_Dtimer_Stop().

В противном случае в момент чтения таймера может произойти прерывание, которое может изменить его значение.

Для использования динамических таймеров в файле OSAcfg.h нужно определить константу OS_ENABLE_DTIMERS. Разрядность динамических таймеров такая же, как и у системного, и задается константой OS_TIMER_SIZE.

Разрешен вызов:

Везде

Параметры функции:

dtimer Дескриптор динамического таймера типа OST_DTIMER. Содержит счетчик таймера, а также информацию о состоянии (считает, остановлен, активен, переполнение). Для PIC16 может размещаться в памяти только в bank0 или bank1

Возвращаемое значение:

OST_TIMER Время, оставшееся до переполнения (в системных тиках)

Пример вызова:

OST_DTIMER dtimer;
OST_MSG_CB msg_cb;
 
void Task (void)
{
    OST_TIMER t;
    for (;;) {
        /*...*/
        OS_Dtimer_Pause(dtimer);
        t = OS_Dtimer_Get (dtimer);
        OS_Dtimer_Continue(dtimer);
        OS_Msg_Send(msg_cb, (OST_MSG)&t);   // Отправить сообщение со значением времени до
                                         // окончания счета dtimer'а
 
        /*...*/
    }
}

Old style name

OS_GetDTimer

См. также

 
osa/ref/allservices/os_dtimer_get.txt · Последние изменения: 07.10.2010 13:52 (внешнее изменение)
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki