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'а /*...*/ } }
OS_GetDTimer