Temporizador#
Introdução#
A classe timer é derivada da classe base brain e fornece funcionalidade para medir o tempo decorrido, permitindo acompanhar durações e agendar eventos baseados no tempo dentro de um programa VEX EXP.
Acesso#
Brain.Timer
Notas#
Brain.Timeré uma instância da classetimere fornece a mesma funcionalidade.
Exemplo#
/* 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);
}
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 timer , deve ser criada uma instância do cérebro brain , como se mostra abaixo:
// Create the EXP Brain
brain Brain = brain();
clear#
Reinicializa o valor atual do temporizador para zero. Em seguida, o temporizador inicia imediatamente a contagem decrescente a partir de zero.
Available Functionsvoid clear();
Esta função não aceita qualquer parâmetro.
Return ValuesEsta função não devolve qualquer valor.
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#
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 projeto é iniciado.
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", Brain.Timer.time());
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 chamada de retorno 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(); // Call turnOrange after 2 seconds Brain.Timer.event(turnOrange, 2000); }