class Timer – sanal periyodik / tek seferlik zamanlayıcı

Timer sınıfı, belirli bir periyotta bir Python geri çağırmasını (callback) ya bir kez (tek seferlik) ya da yinelemeli olarak (periyodik) zamanlayan, yazılımla yönetilen bir sanal zamanlayıcı uygular. Bir geri çağırmayı (callback) bir zamanlamaya göre çalıştırmanın hafif, portlar arası bir yolunu istediğinizde kullanın – donanım düzeyindeki özellikler (PWM kanalları, giriş yakalama, kodlayıcı modu, ölü zaman, kesme girişi vb.) için bunun yerine pyb.Timer kullanın.

Her OpenMV portunda kullanılabilir.

Örnek – periyodik 10 Hz geri çağırma (callback):

from machine import Timer

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

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

Örnek – bir geri çağırmayı (callback) 2 saniye sonra bir kez çalıştırma:

from machine import Timer

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

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

Yapıcılar

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

Bir sanal Timer oluşturur. id -1 olmalıdır (desteklenen tek değer). Herhangi bir anahtar sözcük argümanı init() yöntemine iletilir, böylece zamanlayıcı tek bir çağrıda yapılandırılabilir.

Yöntemler

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

Zamanlayıcıyı başlatır / yeniden başlatır.

  • mode, ONE_SHOT (bir kez tetiklenir ve durur) veya PERIODIC (yinelemeli olarak tetiklenir) seçer.

  • period milisaniye cinsinden periyottur.

  • callback zamanlayıcı tetiklendiğinde çağrılır. Tek argümanı olarak Timer örneğini alır.

deinit() None

Zamanlayıcıyı durdurur ve bekleyen geri çağırmayı (callback) iptal eder.

Sabitler

ONE_SHOT: int

Zamanlayıcının bir kez tetiklenip sonra durması için mode argümanına geçirin.

PERIODIC: int

Zamanlayıcının period aralıklarında yinelemeli olarak tetiklenmesi için mode argümanına geçirin.