Pengatur waktu#
Perkenalan#
Kelas timer diturunkan dari kelas dasar brain dan menyediakan fungsionalitas untuk mengukur waktu yang telah berlalu, memungkinkan Anda untuk melacak durasi dan menjadwalkan peristiwa berbasis waktu dalam program VEX V5.
Mengakses#
Brain.Timer
Catatan#
Brain.Timeradalah sebuah instance dari kelastimerdan menyediakan fungsi yang sama.
Contoh#
/* 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);
}
Fungsi Keanggotaan#
Kelas timer mencakup fungsi anggota berikut:
clear— Mengatur ulang timer ke nol.time— Mengembalikan waktu yang telah berlalu sejak timer dimulai.event— Memanggil fungsi setelah sejumlah milidetik tertentu, dengan argumen opsional.
Sebelum memanggil fungsi anggota timer apa pun, sebuah instance brain harus dibuat, seperti yang ditunjukkan di bawah ini:
// Create the V5 Brain
brain Brain = brain();
clear#
Mengatur ulang nilai timer saat ini ke nol. Setelah itu, timer segera mulai menghitung lagi dari nol.
Available Functionsvoid clear();
Fungsi ini tidak menerima parameter apa pun.
Return ValuesFungsi ini tidak mengembalikan nilai.
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#
Mengembalikan nilai timer saat ini.
Available Functions1 — Mengembalikan waktu yang telah berlalu dalam milidetik.
uint32_t time() const;
Parameters2 — Mengembalikan waktu yang telah berlalu dalam satuan waktu yang ditentukan.
double time( timeUnits units ) const;
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Satuan yang digunakan untuk menampilkan waktu yang telah berlalu:
|
Fungsi tanpa parameter (1) mengembalikan
uint32_tyang mewakili waktu yang telah berlalu dalam milidetik.Fungsi dengan parameter
timeUnits(2) mengembalikandoubleyang mewakili waktu yang telah berlalu dalam satuan yang ditentukan.
Penghitung waktu mulai berjalan saat proyek dimulai.
Memanggil
clearmengatur ulang nilai timer menjadi nol.
// 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#
Mendaftarkan fungsi callback yang akan dieksekusi setelah penundaan yang ditentukan.
Available Functions1 — Mendaftarkan fungsi callback untuk dijalankan setelah penundaan yang ditentukan dan meneruskan nilai yang ditentukan pengguna ke fungsi callback tersebut.
static void event( void (*callback)(void*), uint32_t value );
Parameters2 — Mendaftarkan fungsi callback untuk dijalankan setelah penundaan yang ditentukan.
static void event( void (*callback)(void), uint32_t value );
Parameter |
Jenis |
Keterangan |
|---|---|---|
|
|
Sebuah fungsi yang akan dipanggil setelah penundaan yang ditentukan dan menerima argumen yang ditentukan pengguna. |
|
|
Sebuah fungsi yang akan dipanggil setelah penundaan yang ditentukan. |
|
|
Penundaan, dalam milidetik, sebelum fungsi callback dieksekusi. |
Fungsi ini tidak mengembalikan nilai.
NotesFungsi ini menjadwalkan panggilan balik satu kali; fungsi ini tidak berulang secara otomatis.
Fungsi callback harus mengembalikan
void.Beberapa acara dapat dijadwalkan pada waktu yang bersamaan.
Definisikan fungsi (di luar
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Daftarkan fungsi di dalam
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); }