OSA : OS_Dtimer_Get

OST_TIMER OS_Dtimer_Get (dtimer)

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

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

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

Для использования динамических таймеров в файле 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

См. также