Пользовательский таймер#
Введение#
Класс timer используется для отсчета времени и взаимодействия с таймером, независимым от таймера мозга.
Конструктор класса#
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 Functionsvoid clear();
Эта функция не принимает никаких параметров.
Return ValuesЭта функция не возвращает значения.
Exampleswhile (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 Functions1 — Возвращает прошедшее время в миллисекундах.
uint32_t time() const;
Parameters2 — Возвращает прошедшее время в указанных единицах измерения.
double time( timeUnits units ) const;
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Единицы измерения прошедшего времени:
|
Функция без параметров (1) возвращает
uint32_t, представляющее прошедшее время в миллисекундах.Функция с параметром timeUnits
timeUnits2) возвращаетdouble, представляющий прошедшее время в указанных единицах.
Отсчет времени начинается с момента создания пользовательского таймера.
Вызов
clearсбрасывает значение таймера до нуля.
// 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 Functions1 — Регистрирует функцию обратного вызова, которая будет выполняться после указанной задержки, и передает в нее заданное пользователем значение.
static void event( void (*callback)(void *), uint32_t value );
Parameters2 — Регистрирует функцию обратного вызова, которая будет выполнена после указанной задержки.
static void event( void (*callback)(void), uint32_t value );
Параметр |
Тип |
Описание |
|---|---|---|
|
|
Функция, которая будет вызвана после указанной задержки и принимает заданный пользователем аргумент. |
|
|
Функция, которая будет вызвана после указанной задержки. |
|
|
Задержка в миллисекундах до выполнения функции обратного вызова. |
Эта функция не возвращает значения.
NotesЭта функция планирует однократный обратный вызов; он не повторяется автоматически.
Функция обратного вызова должна возвращать
void.Одновременно может быть запланировано несколько мероприятий.
Определите функцию (вне
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); }