Pengatur Waktu Kustom#
Perkenalan#
Kelas timer digunakan untuk menjaga waktu dan berinteraksi dengan timer yang independen dari timer Otak.
Konstruktor Kelas#
timer();
Destruktor Kelas#
Menghancurkan objek timer dan melepaskan sumber daya terkait.
~timer();
Parameter#
Konstruktor ini tidak menerima parameter apa pun.
Contoh#
// Create a timer instance
timer myTimer = timer();
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 timer apa pun, sebuah instance timer timer harus dibuat, seperti yang ditunjukkan di bawah ini:
/* This constructor is required to use a
custom timer. Replace the values
as needed. */
// Create a timer instance
timer myTimer = timer();
clear#
Mengatur timer ke nol.
Available Functionsvoid clear();
Fungsi ini tidak menerima parameter apa pun.
Return ValuesFungsi ini tidak mengembalikan nilai.
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#
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 penghitung waktu khusus dibuat.
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", myTimer.time(sec));
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(); timer myTimer = timer(); // Call turnOrange after 2 seconds myTimer.event(turnOrange, 2000); }