class Timer -- مؤقت دوري / أحادي الطلقة افتراضي

تنفّذ الفئة Timer مؤقتًا افتراضيًا مُدارًا برمجيًا يجدول دالة رد نداء بلغة Python إما مرة واحدة (أحادي الطلقة) أو بشكل متكرر (دوري) عند فترة معطاة. استخدمها عندما تريد طريقة خفيفة قابلة للنقل بين المنافذ لتشغيل دالة رد نداء وفق جدول -- وللميزات على مستوى العتاد (قنوات PWM، التقاط الإدخال، وضع المُرمِّز، الوقت الميت، إدخال الكسر، إلخ) استخدم pyb.Timer بدلًا منها.

متاح على كل منافذ OpenMV.

مثال -- دالة رد نداء دورية بتردد 10 Hz:

from machine import Timer

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

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

مثال -- تشغيل دالة رد نداء مرة واحدة بعد ثانيتين:

from machine import Timer

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

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

المُنشئات

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

تُنشئ Timer افتراضيًا. يجب أن يكون id بقيمة -1 (القيمة الوحيدة المدعومة). تُمرَّر أي وسائط مفتاحية إلى init() بحيث يمكن تكوين المؤقت في استدعاء واحد.

الطرق

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

تُهيّئ / تُعيد تهيئة المؤقت.

  • mode يختار ONE_SHOT (يطلق مرة واحدة ويتوقف) أو PERIODIC (يطلق بشكل متكرر).

  • period هو الفترة بالميلي ثانية.

  • callback يُستدعى عند إطلاق المؤقت. ويستقبل مثيل Timer كوسيطه الوحيد.

deinit() None

توقف المؤقت وتُلغي أي دالة رد نداء معلّقة.

الثوابت

ONE_SHOT: int

مرّره إلى mode بحيث يطلق المؤقت مرة واحدة ثم يتوقف.

PERIODIC: int

مرّره إلى mode بحيث يطلق المؤقت بشكل متكرر عند فترات period.