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.Timerlà một thể hiện của lớptimervà 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 Functionsvoid clear();
Hàm này không chấp nhận bất kỳ tham số nào.
Return ValuesHàm này không trả về giá trị nào.
Exampleswhile (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 Functions1 — Trả về thời gian đã trôi qua tính bằng mili giây.
uint32_t time() const;
Parameters2 — Trả về thời gian đã trôi qua theo đơn vị thời gian được chỉ định.
double time( timeUnits units ) const;
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
Các đơn vị được sử dụng để trả về thời gian đã trôi qua:
|
Hàm không tham số (1) trả về
uint32_tbiểu thị thời gian đã trôi qua tính bằng mili giây.Hàm có tham số
timeUnits(2) trả vềdoublebiểu thị thời gian đã trôi qua theo đơn vị được chỉ định.
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.
// 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 Functions1 — Đă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 );
Parameters2 — Đă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 );
Tham số |
Kiểu |
Sự miêu tả |
|---|---|---|
|
|
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. |
|
|
Một hàm sẽ được gọi sau khoảng thời gian trễ đã chỉ định. |
|
|
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. |
Hàm này không trả về giá trị nào.
NotesChứ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.
Đị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); }