Timer#

Einführung#

Die Klasse timer ist von der Basisklasse brain abgeleitet und bietet Funktionen zum Messen der verstrichenen Zeit, sodass Sie Dauern verfolgen und zeitbasierte Ereignisse innerhalb eines VEX EXP-Programms planen können.

Zugang#

Brain.Timer

Anmerkungen#

  • Brain.Timer ist eine Instanz der Klasse timer und bietet die gleiche Funktionalität.

Beispiel#

/* This constructor is required when using VS Code.
A Brain is generated automatically at the start of
VEXcode projects. */

// Create the EXP 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);
}

Mitgliedsfunktionen#

Die Klasse timer enthält die folgenden Memberfunktionen:

  • clear — Setzt den Timer auf Null zurück.

  • time — Gibt die seit dem Start des Timers verstrichene Zeit zurück.

  • event — Ruft eine Funktion nach einer bestimmten Anzahl von Millisekunden auf, mit optionalen Argumenten.

Bevor timer Memberfunktionen aufgerufen werden, muss eine brain Instanz erstellt werden, wie unten gezeigt:

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

clear#

Setzt den aktuellen Wert des Timers auf null zurück. Anschließend beginnt der Timer sofort wieder von null hochzuzählen.

Available Functions
void clear();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Diese Funktion gibt keinen Wert zurück.

Examples
while (true) {
  // Reset the timer every time the check button is pressed
  if (Brain.buttonCheck.pressing()) {
    Brain.Timer.clear();
  }
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Time: %.2f", Brain.Timer.value());
  wait(50, msec);
}

time#

Gibt den aktuellen Wert des Timers zurück.

Available Functions

1 — Gibt die verstrichene Zeit in Millisekunden zurück.

uint32_t time() const;

2 — Gibt die verstrichene Zeit in den angegebenen Zeiteinheiten zurück.

double time(
    timeUnits units ) const;

Parameters

Parameter

Typ

Beschreibung

units

timeUnits

The units used to return the elapsed time:

  • seconds / sec — seconds
  • msec — milliseconds

Return Values
  • Die parameterlose Funktion (1) gibt einen uint32_t zurück, der die verstrichene Zeit in Millisekunden darstellt.

  • Die Funktion mit einem timeUnits Parameter (2) gibt einen double zurück, der die verstrichene Zeit in den angegebenen Einheiten darstellt.

Notes
  • Der Timer beginnt zu zählen, sobald das Projekt startet.

  • Der Aufruf von clear setzt den Timerwert auf Null zurück.

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#

Registriert eine Callback-Funktion, die nach einer festgelegten Verzögerung ausgeführt werden soll.

Available Functions

1 — Registriert eine Rückruffunktion, die nach einer bestimmten Verzögerung ausgeführt wird, und übergibt einen benutzerdefinierten Wert an die Rückruffunktion.

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

2 — Registriert eine Rückruffunktion, die nach einer bestimmten Verzögerung ausgeführt wird.

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

Parameters

Parameter

Typ

Beschreibung

callback

void ()(void)

Eine Funktion, die nach der angegebenen Verzögerung aufgerufen wird und ein benutzerdefiniertes Argument empfängt.

callback

void (*)(void)

Eine Funktion, die nach der angegebenen Verzögerung aufgerufen wird.

value

uint32_t

Die Verzögerung in Millisekunden, bevor die Callback-Funktion ausgeführt wird.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Diese Funktion plant einen einmaligen Rückruf; sie wird nicht automatisch wiederholt.

  • Die Callback-Funktion muss void zurückgeben.

  • Es können mehrere Veranstaltungen gleichzeitig stattfinden.

Examples

Definiere die Funktion (außerhalb von int main())

// Create a function to turn the screen orange
void turnOrange() {
  Brain.Screen.clearScreen(orange);
}

Registriere die Funktion innerhalb von 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);
}