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.Timerist eine Instanz der Klassetimerund 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 Functionsvoid clear();
Diese Funktion akzeptiert keine Parameter.
Return ValuesDiese Funktion gibt keinen Wert zurück.
Exampleswhile (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 Functions1 — Gibt die verstrichene Zeit in Millisekunden zurück.
uint32_t time() const;
Parameters2 — Gibt die verstrichene Zeit in den angegebenen Zeiteinheiten zurück.
double time( timeUnits units ) const;
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
The units used to return the elapsed time:
|
Die parameterlose Funktion (1) gibt einen
uint32_tzurück, der die verstrichene Zeit in Millisekunden darstellt.Die Funktion mit einem
timeUnitsParameter (2) gibt einendoublezurück, der die verstrichene Zeit in den angegebenen Einheiten darstellt.
Der Timer beginnt zu zählen, sobald das Projekt startet.
Der Aufruf von
clearsetzt den Timerwert auf Null zurück.
// 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 Functions1 — 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 );
Parameters2 — Registriert eine Rückruffunktion, die nach einer bestimmten Verzögerung ausgeführt wird.
static void event( void (*callback)(void), uint32_t value );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Eine Funktion, die nach der angegebenen Verzögerung aufgerufen wird und ein benutzerdefiniertes Argument empfängt. |
|
|
Eine Funktion, die nach der angegebenen Verzögerung aufgerufen wird. |
|
|
Die Verzögerung in Millisekunden, bevor die Callback-Funktion ausgeführt wird. |
Diese Funktion gibt keinen Wert zurück.
NotesDiese Funktion plant einen einmaligen Rückruf; sie wird nicht automatisch wiederholt.
Die Callback-Funktion muss
voidzurückgeben.Es können mehrere Veranstaltungen gleichzeitig stattfinden.
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); }