Hẹn giờ#

Giới thiệu#

Lớp timer được sử dụng để giữ thời gian và tương tác với bộ hẹn giờ độc lập với bộ hẹn giờ của Brain.

Hàm tạo lớp#

timer();

Lớp Destructor#

Hủy đối tượng hẹn giờ timer các tài nguyên liên quan.

~timer();

Thông số#

Hàm khởi tạo này không chấp nhận bất kỳ tham số nào.

Ví dụ#

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

Chức năng thành viên#

Lớp timer bao gồm các hàm thành viên sau:

  • reset — Resets the timer to zero.

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

  • event — Gọi một hàm sau một số mili giây được chỉ định, với các đối số tùy chọn.

Trước khi gọi bất kỳ hàm thành viên nào của bộ hẹn giờ timer , cần phải tạo một thể hiện của bộ hẹn giờ timer , như được hiển thị bên dưới:

/* 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#

Đặt bộ đếm thời gian về 0.

Available Functions
void reset();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Hàm này không trả về giá trị nào.

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#

Trả về giá trị hiện tại của bộ đếm thời gian.

Available Functions
double value();

Parameters

Hàm này không chấp nhận bất kỳ tham số nào.

Return Values

Một giá trị kiểu double biểu thị khoảng thời gian đã trôi qua tính bằng giây.

Notes
  • Bộ đếm thời gian bắt đầu đếm khi nó được lắp ráp xong.

  • 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#

Đăng ký một hàm gọi lại để được thực thi sau một khoảng thời gian trễ nhất định.

Available Functions

1 — Đăng ký một hàm gọi lại để chạy sau một khoảng thời gian trễ nhất định và truyền một giá trị do người dùng định nghĩa cho hàm gọi lại.

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

2 — Đăng ký một hàm gọi lại để chạy sau một khoảng thời gian trễ nhất định.

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

Parameters

Tham số

Kiểu

Sự miêu tả

callback

void (*)(void *)

Một hàm sẽ được gọi sau khoảng thời gian trễ được chỉ định và nhận một đối số do người dùng định nghĩa.

callback

void (*)(void)

Một hàm sẽ được gọi sau khoảng thời gian trễ đã chỉ định.

value

uint32_t

Khoảng thời gian trễ, tính bằng mili giây, trước khi hàm gọi lại được thực thi.

Return Values

Hàm này không trả về giá trị nào.

Notes
  • Chức năng này lên lịch gọi lại một lần duy nhất; nó không tự động lặp lại.

  • Hàm gọi lại phải trả về void.

  • Nhiều sự kiện có thể được lên lịch cùng một lúc.

Examples

Định nghĩa hàm (bên ngoài int main())

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

Đăng ký hàm bên trong 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);
}