Користувацький таймер#

Вступ#

Клас timer використовується для відліку часу та взаємодії з таймером, незалежним від таймера Brain.

Конструктор класів#

timer();

Деструктор класів#

Знищує об’єкт timer та звільняє пов’язані з ним ресурси.

~timer();

Параметри#

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

Приклади#

// Create a timer instance
timer myTimer = timer();

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

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

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

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

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

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

/* This constructor is required to use a 
custom timer. Replace the values
as needed. */

// Create a timer instance
timer myTimer = timer();

clear#

Встановлює таймер на нуль.

Available Functions
void clear();

Parameters

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

Return Values

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

Examples
while (true) {
  // Clear the timer every time the screen is pressed
  if (Brain.Screen.pressing()) {
    myTimer.clear();
  }
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Time: %.2f", myTimer.time(msec));
  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", myTimer.time(sec));

  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();

  timer myTimer = timer();
  // Call turnOrange after 2 seconds
  myTimer.event(turnOrange, 2000);
}