Таймер#

Вступ#

Клас timer походить від базового класу brain і надає функціональність для вимірювання часу, що минув, що дозволяє відстежувати тривалість та планувати події на основі часу в програмі VEX V5.

Доступ#

Brain.Timer

Нотатки#

  • Brain.Timer є екземпляром класу timer і забезпечує таку саму функціональність.

Приклад#

/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */

// Create the V5 Brain
brain Brain = brain();

// Display the timer as it ticks up
while (true) {
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Time: %.2f", Brain.Timer.time());

  wait(50, msec);
}

Функції-члени#

Клас timer містить такі функції-члени:

  • clear — Скидає таймер на нуль.

  • time — Повертає час, що минув з моменту запуску таймера.

  • event — Викликає функцію через задану кількість мілісекунд з необов’язковими аргументами.

Перед викликом будь-яких функцій-членів timer необхідно створити екземпляр brain , як показано нижче:

// Create the V5 Brain
brain Brain = brain();

clear#

Скидає поточне значення таймера до нуля. Після цього таймер негайно починає відлік знову з нуля.

Available Functions
void clear();

Parameters

Ця функція не приймає жодних параметрів.

Return Values

Ця функція не повертає значення.

Examples
while (true) {
  // Reset the timer every time the screen is pressed
  if (Brain.Screen.pressing()) {
    Brain.Timer.clear();
  }
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Time: %.2f", Brain.Timer.value());
  wait(50, msec);
}

time#

Повертає поточне значення таймера.

Available Functions

1 — Повертає час, що минув, у мілісекундах.

uint32_t time() const;

2 — Повертає час, що минув, у вказаних одиницях вимірювання.

double time(
    timeUnits units ) const;

Parameters

Параметр

Тип

Опис

units

timeUnits

Одиниці вимірювання, що використовуються для повернення часу, що минув:

  • seconds / sec — секунди
  • msec — мілісекунди

Return Values
  • Безпараметрична функція (1) повертає значення uint32_t яке представляє час, що минув, у мілісекундах.

  • Функція з параметром timeUnits (2) повертає значення типу double що представляє час, що минув, у вказаних одиницях вимірювання.

Notes
  • Таймер починає відлік часу з моменту запуску проєкту.

  • Виклик clear скидає значення таймера до нуля.

Examples
// Display the timer as it ticks up
while (true) {
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Time: %.2f", Brain.Timer.time());

  wait(50, msec);
}

event#

Реєструє функцію зворотного виклику, яка буде виконана після заданої затримки.

Available Functions

1 — Реєструє зворотний виклик для виконання після заданої затримки та передає визначене користувачем значення зворотному виклику.

static void event(
    void (*callback)(void*),
    uint32_t value );

2 — Реєструє зворотний виклик для виконання після заданої затримки.

static void event(
    void (*callback)(void),
    uint32_t value );

Parameters

Параметр

Тип

Опис

callback

void ()(void)

Функція, яка буде викликана після заданої затримки та отримає визначений користувачем аргумент.

callback

void (*)(void)

Функція, яка буде викликана після заданої затримки.

value

uint32_t

Затримка в мілісекундах перед виконанням функції зворотного виклику.

Return Values

Ця функція не повертає значення.

Notes
  • Ця функція планує одноразовий зворотний виклик; він не повторюється автоматично.

  • Функція зворотного виклику повинна повертати void.

  • Одночасно можна запланувати кілька подій.

Examples

Визначити функцію (поза int main())

// Create a function to turn the screen orange
void turnOrange() {
  Brain.Screen.clearScreen(orange);
}

Зареєструйте функцію всередині int main()

int main() {
  /* vexcodeInit() is only required when using VEXcode.
  Remove vexcodeInit() if compiling in VS Code. */
  vexcodeInit();

  // Call turnOrange after 2 seconds
  Brain.Timer.event(turnOrange, 2000);
}