Anpassad timer#
Introduktion#
Timerklassen timer används för att hålla tiden och interagera med en timer oberoende av Hjärnans timer.
Klasskonstruktor#
timer();
Klassförstörare#
Förstör timer objektet och frigör tillhörande resurser.
~timer();
Parametrar#
Denna konstruktor accepterar inga parametrar.
Exempel#
// Create a timer instance
timer myTimer = timer();
Medlemsfunktioner#
Klassen timer innehåller följande medlemsfunktioner:
clear— Återställer timern till noll.time— Returnerar den förflutna tiden sedan timern startade.event— Anropar en funktion efter ett angivet antal millisekunder, med valfria argument.
Innan några timer medlemsfunktioner anropas måste en timer instans skapas, som visas nedan:
/* This constructor is required to use a
custom timer. Replace the values
as needed. */
// Create a timer instance
timer myTimer = timer();
clear#
Ställer in timern på noll.
Available Functionsvoid clear();
Den här funktionen accepterar inga parametrar.
Return ValuesDen här funktionen returnerar inget värde.
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#
Returnerar timerns aktuella värde.
Available Functions1 — Returnerar förfluten tid i millisekunder.
uint32_t time() const;
Parameters2 — Returnerar den förflutna tiden i de angivna tidsenheterna.
double time( timeUnits units ) const;
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
Enheterna som används för att returnera förfluten tid:
|
Den parameterlösa funktionen (1) returnerar
uint32_tsom representerar den förflutna tiden i millisekunder.Funktionen med parametern
timeUnits(2) returnerardoublesom representerar den förflutna tiden i de angivna enheterna.
Timern börjar räkna när den anpassade timern har konstruerats.
Om man anropar
clearåterställs timervärdet till noll.
// 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#
Registrerar en återuppringningsfunktion som ska köras efter en angiven fördröjning.
Available Functions1 — Registrerar en återanropsfunktion som ska köras efter en angiven fördröjning och skickar ett användardefinierat värde till återanropsfunktionen.
static void event( void (*callback)(void *), uint32_t value );
Parameters2 — Registrerar ett återanrop som ska köras efter en angiven fördröjning.
static void event( void (*callback)(void), uint32_t value );
Parameter |
Typ |
Beskrivning |
|---|---|---|
|
|
En funktion som anropas efter den angivna fördröjningen och tar emot ett användardefinierat argument. |
|
|
En funktion som kommer att anropas efter den angivna fördröjningen. |
|
|
Fördröjningen, i millisekunder, innan återuppringningsfunktionen körs. |
Den här funktionen returnerar inget värde.
NotesDen här funktionen schemalägger ett engångsåteruppringning; den upprepas inte automatiskt.
Återanropsfunktionen måste returnera
void.Flera evenemang kan vara schemalagda samtidigt.
Definiera funktionen (utanför
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Registrera funktionen inuti
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); }