Timer#
Invoering#
De timer klasse is afgeleid van de brain basisklasse en biedt functionaliteit voor het meten van de verstreken tijd, waardoor u tijdsduren kunt bijhouden en tijdsgebonden gebeurtenissen kunt plannen binnen een VEX V5-programma.
Toegang#
Brain.Timer
Notities#
Brain.Timeris een instantie van detimerklasse en biedt dezelfde functionaliteit.
Voorbeeld#
/* 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);
}
Lidfuncties#
De klasse timer bevat de volgende lidfuncties:
clear— Zet de timer terug naar nul.time— Geeft de verstreken tijd terug sinds de timer is gestart.event— Roept een functie aan na een opgegeven aantal milliseconden, met optionele argumenten.
Voordat er lidfuncties van timer kunnen worden aangeroepen, moet er een instantie van brain worden aangemaakt, zoals hieronder weergegeven:
// Create the V5 Brain
brain Brain = brain();
clear#
Hiermee wordt de huidige waarde van de timer op nul gezet. Daarna begint de timer direct weer vanaf nul te tellen.
Available Functionsvoid clear();
Deze functie accepteert geen parameters.
Return ValuesDeze functie retourneert geen waarde.
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#
Geeft de huidige waarde van de timer terug.
Available Functions1 — Geeft de verstreken tijd in milliseconden weer.
uint32_t time() const;
Parameters2 — Geeft de verstreken tijd weer in de opgegeven tijdseenheden.
double time( timeUnits units ) const;
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De eenheden die worden gebruikt om de verstreken tijd weer te geven:
|
De parameterloze functie (1) retourneert een
uint32_tdie de verstreken tijd in milliseconden vertegenwoordigt.De functie met een parameter van
timeUnits(2) retourneert eendoubledie de verstreken tijd in de opgegeven eenheden vertegenwoordigt.
De timer begint te tellen zodra het project start.
Het aanroepen van
clearzet de timerwaarde terug naar nul.
// 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#
Registreert een callbackfunctie die na een bepaalde vertraging moet worden uitgevoerd.
Available Functions1 — Registreert een callback die na een bepaalde vertraging wordt uitgevoerd en geeft een door de gebruiker gedefinieerde waarde door aan de callback.
static void event( void (*callback)(void*), uint32_t value );
Parameters2 — Registreert een callback die na een bepaalde vertraging wordt uitgevoerd.
static void event( void (*callback)(void), uint32_t value );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Een functie die na de opgegeven vertraging wordt aangeroepen en een door de gebruiker gedefinieerd argument ontvangt. |
|
|
Een functie die na de opgegeven vertraging wordt aangeroepen. |
|
|
De vertraging, in milliseconden, voordat de callbackfunctie wordt uitgevoerd. |
Deze functie retourneert geen waarde.
NotesDeze functie plant een eenmalige callback in; deze wordt niet automatisch herhaald.
De callbackfunctie moet
voidretourneren.Er kunnen meerdere evenementen tegelijkertijd worden ingepland.
Definieer de functie (buiten
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Registreer de functie binnen
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); }