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 Functions
void clear();

Parameters

Fungsi ini tidak menerima parameter apa pun.

Return Values

Fungsi ini tidak mengembalikan nilai.

Examples
while (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 Functions

1 — Mengembalikan waktu yang telah berlalu dalam milidetik.

uint32_t time() const;

2 — Mengembalikan waktu yang telah berlalu dalam satuan waktu yang ditentukan.

double time(
    timeUnits units ) const;

Parameters

Parameter

Jenis

Keterangan

units

timeUnits

Satuan yang digunakan untuk menampilkan waktu yang telah berlalu:

  • seconds / sec — detik
  • msec — milidetik

Return Values
  • Fungsi tanpa parameter (1) mengembalikan uint32_t yang mewakili waktu yang telah berlalu dalam milidetik.

  • Fungsi dengan parameter timeUnits (2) mengembalikan double yang mewakili waktu yang telah berlalu dalam satuan yang ditentukan.

Notes
  • Penghitung waktu mulai berjalan saat penghitung waktu khusus dibuat.

  • Memanggil clear mengatur ulang nilai timer menjadi nol.

Examples
// 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 Functions

1 — 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 );

2 — Mendaftarkan fungsi callback untuk dijalankan setelah penundaan yang ditentukan.

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

Parameters

Parameter

Jenis

Keterangan

callback

void (*)(void *)

Sebuah fungsi yang akan dipanggil setelah penundaan yang ditentukan dan menerima argumen yang ditentukan pengguna.

callback

void (*)(void)

Sebuah fungsi yang akan dipanggil setelah penundaan yang ditentukan.

value

uint32_t

Penundaan, dalam milidetik, sebelum fungsi callback dieksekusi.

Return Values

Fungsi ini tidak mengembalikan nilai.

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

Examples

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