Hẹn giờ#

Giới thiệu#

Lớp timer được kế thừa từ lớp cơ sở brain và cung cấp chức năng đo thời gian đã trôi qua, cho phép bạn theo dõi thời lượng và lên lịch các sự kiện dựa trên thời gian trong chương trình VEX V5.

Truy cập#

Brain.Timer

Ghi chú#

  • Brain.Timer là một thể hiện của lớp timer và cung cấp chức năng tương tự.

Ví dụ#

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

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

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

  • clear — Đặt lại bộ đếm thời gian về không.

  • time — Trả về thời gian đã trôi qua kể từ khi bộ hẹn giờ bắt đầu.

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

Before calling any timer member functions, a brain instance must be created, as shown below:

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

clear#

Đặt lại giá trị hiện tại của bộ đếm thời gian về 0. Sau đó, bộ đếm thời gian sẽ ngay lập tức bắt đầu đếm ngược lại từ 0.

Available Functions
void clear();

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) {
  // 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#

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

Available Functions

1 — Trả về thời gian đã trôi qua tính bằng mili giây.

uint32_t time() const;

2 — Trả về thời gian đã trôi qua theo đơn vị thời gian được chỉ định.

double time(
    timeUnits units ) const;

Parameters

Tham số

Kiểu

Sự miêu tả

units

timeUnits

Các đơn vị được sử dụng để trả về thời gian đã trôi qua:

  • seconds / sec — giây
  • msec — mili giây

Return Values
  • Hàm không tham số (1) trả về uint32_t biểu thị thời gian đã trôi qua tính bằng mili giây.

  • Hàm có tham số timeUnits (2) trả về double biểu thị thời gian đã trôi qua theo đơn vị được chỉ định.

Notes
  • Bộ đếm thời gian bắt đầu đếm ngược khi dự án khởi động.

  • Gọi clear đặt lại giá trị bộ hẹn giờ về không.

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#

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

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