Temporizador personalizado#
Introdução#
A classe timer é utilizada para controlar o tempo e interagir com um temporizador independente do timer do cérebro.
Construtor de Classes#
timer();
Destrutor de classes#
Destrói o objeto com temporizador timer e liberta os recursos associados.
~timer();
Parâmetros#
Este construtor não aceita qualquer parâmetro.
Exemplos#
// Create a timer instance
timer myTimer = timer();
Funções de membro#
A classe timer inclui as seguintes funções membro:
clear— Repõe o temporizador a zero.time— Retorna o tempo decorrido desde que o temporizador foi iniciado.event— Chama uma função após um número especificado de milissegundos, com argumentos opcionais.
Antes de chamar qualquer função membro do temporizador 1 timer , deve ser criada uma instância do temporizador 3 timer , como se mostra abaixo:
/* This constructor is required to use a
custom timer. Replace the values
as needed. */
// Create a timer instance
timer myTimer = timer();
clear#
Zera o temporizador.
Available Functionsvoid clear();
Esta função não aceita qualquer parâmetro.
Return ValuesEsta função não devolve qualquer valor.
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#
Retorna o valor atual do temporizador.
Available Functions1 — Retorna o tempo decorrido em milissegundos.
uint32_t time() const;
Parameters2 — Retorna o tempo decorrido nas unidades de tempo especificadas.
double time( timeUnits units ) const;
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
As unidades utilizadas para devolver o tempo decorrido são:
|
A função sem parâmetros (1) devolve um
uint32_trepresentando o tempo decorrido em milissegundos.A função com um parâmetro timeUnits
timeUnits) devolve umdoubleque representa o tempo decorrido nas unidades especificadas.
O temporizador começa a contar quando o temporizador personalizado é criado.
Chamar
clearreinicia o valor do temporizador para zero.
// 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#
Regista uma função de retorno de chamada para ser executada após um atraso especificado.
Available Functions1 — Regista uma função de retorno de chamada para ser executada após um atraso especificado e passa um valor definido pelo utilizador para a função de retorno de chamada.
static void event( void (*callback)(void *), uint32_t value );
Parameters2 — Regista uma função de chamada de retorno para ser executada após um atraso especificado.
static void event( void (*callback)(void), uint32_t value );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Uma função que será chamada após o atraso especificado e que recebe um argumento definido pelo utilizador. |
|
|
Uma função que será chamada após o atraso especificado. |
|
|
O atraso, em milissegundos, antes da execução da função de chamada de retorno. |
Esta função não devolve qualquer valor.
NotesEsta função agenda uma chamada de retorno única; não se repete automaticamente.
A função de callback deve retornar
void.Podem ser agendados vários eventos ao mesmo tempo.
Defina a função (fora de
int main())// Create a function to turn the screen orange void turnOrange() { Brain.Screen.clearScreen(orange); }Registe a função dentro de
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); }