classe Timer – timer virtual periódico / de disparo único#

A classe Timer implementa um timer virtual gerenciado por software que agenda um callback Python uma vez (disparo único) ou repetidamente (periódico) em um dado período. Use-a quando você quiser uma maneira leve e portável entre portas de executar um callback de forma agendada – para recursos de nível de hardware (canais PWM, captura de entrada, modo de encoder, tempo morto, entrada de break, etc.) use pyb.Timer em seu lugar.

Disponível em todas as portas OpenMV.

Exemplo – callback periódico de 10 Hz:

from machine import Timer

def tick(t):
    print("tick")

tim = Timer(-1)
tim.init(period=100, callback=tick)   # 100 ms = 10 Hz

Exemplo – executar um callback uma vez após 2 segundos:

from machine import Timer

def fire(t):
    print("once")

Timer(-1).init(mode=Timer.ONE_SHOT, period=2000, callback=fire)

Construtores#

class machine.Timer(id: int = -1, /, *, mode: int = PERIODIC, period: int = -1, callback: Callable[[Timer], None] | None = None)#

Constrói um Timer virtual. id deve ser -1 (o único valor suportado). Quaisquer argumentos nomeados são encaminhados para init() para que o timer possa ser configurado em uma única chamada.

Métodos#

init(*, mode: int = PERIODIC, period: int = -1, callback: Callable[[Timer], None] | None = None) None#

Inicializa / reinicializa o timer.

  • mode seleciona ONE_SHOT (dispara uma vez e para) ou PERIODIC (dispara repetidamente).

  • period é o período em milissegundos.

  • callback é invocado quando o timer dispara. Ele recebe a instância Timer como seu único argumento.

deinit() None#

Para o timer e cancela qualquer callback pendente.

Constantes#

ONE_SHOT: int#

Passe para mode para que o timer dispare uma vez e então pare.

PERIODIC: int#

Passe para mode para que o timer dispare repetidamente em intervalos de period.