Таймер#

Вступ#

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

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

timer();

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

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

~timer();

Параметри#

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

Приклади#

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

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

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

  • reset — Resets the timer to zero.

  • value — Returns the elapsed time since the timer started.

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

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

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

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

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

// Create the Brain to use Brain.Timer
brain Brain = brain();

reset#

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

Available Functions
void reset();

Parameters

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

Return Values

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

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

value#

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

Available Functions
double value();

Parameters

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

Return Values

Подвійне число, що представляє кількість часу, що минув, у секундах.

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

  • Calling reset resets the timer value to zero.

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

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