OSA : OS_Dtimer_Run

OS_Dtimer_Run (dtimer, newtime)

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

Запустить dtimer на отсчет времени newtime с момента вызова этого сервиса. Флаг переполнения сбрасывается.

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

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

Везде

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

dtimer Дескриптор динамического таймера типа OST_DTIMER. Содержит счетчик таймера, а также информацию о состоянии (считает, остановлен, активен, переполнение). Может размещаться в памяти только в bank0 или bank1
newtime Время, на которое запускается таймер. Задается в системных тиках - периодах вызова сервиса OS_Timer. Не должно превышать разрядности таймера

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

Нет

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

OST_DTIMER dtimer;
 
void Task (void)
{
    OS_Dtimer_Create(dtimer);
    for (;;) {
        /*...*/
        // В течение секунды генерируем меандр 100 Гц
        OS_Dtimer_Run (dtimer, 1000);
        do {
            RB1 = 1;
            OS_Delay(5);
            RB1 = 0;
            OS_Delay(5);
        } while (!OS_Dtimer_Check(dtimer));
        /*...*/
    }
}

Old style name

OS_RunDTimer

См. также