32. Lektion: TimerAus Attraktor WikiVersion vom 21. Dezember 2023, 08:01 Uhr von Kapest (Diskussion | Beiträge) InhaltsverzeichnisTimerDer RP2040 enthält einen 64-bit Zähler. Dieser wird im 1µS-Takt hochgezählt. Da ein Überlauf erst in 584942 Jahren erfolgen würde, ist kein Überlauf und die damit verbundenen Komplikationen zu befürchten. Die Timer sind (beim Pico-Micropython) in Software realisiert. Deshalb ist ihre Anzahl im Prinzip nur durch den vorhandenen Speicherplatz begrenzt. Eine Timer-Instanz erzeugenWie immer in Micropython muss zuerst eine Instanz der Klasse Timer erzeugt werden.
Hier der Prototyp: tim = Timer(*, mode=Timer.PERIODIC, freq=-1, period=-1, callback=None) und hier 2 Beispiele: from machine import Timer tim = Timer(period=5000, mode=Timer.ONE_SHOT, callback=lambda t:print(1)) tim.init(freq=2, mode=Timer.PERIODIC, callback=lambda t:print(2)) Timer Methoden
def mycallback(t): pass # periodic at 1kHz tim.init(mode=Timer.PERIODIC, freq=1000, callback=mycallback) # periodic with 100ms period tim.init(period=100, callback=mycallback) # one shot firing after 1000ms tim.init(mode=Timer.ONE_SHOT, period=1000, callback=mycallback)
Lambda FunktionLambda Funktionen sind kleine (in einer Zeile) Funktionen, lokale und namenlose Funktionen. lambda parameter(s):return value Und hier eine Anwendung: # Lambda_test_01.py # from machine import Pin, Timer led = Pin(22, Pin.OUT) led.value(1) led_timer = Timer(freq=2, mode=Timer.PERIODIC, callback=lambda x:led.toggle())
WDT – Watchdog TimerDer Watchdog Timer startet das System nach einem Absturz wieder neu. Dazu wird ein Timer gestartet der als callback einen Reset ausführt. Das Programm muss den WDT jeweils vor Ablauf der Zeit zurücksetzen. Wenn das Programm abstürzt erfolgt das Zurücksetzen des WDT nicht und er löst einen Reset aus. Beim Pico ist die maximale Zeit 8388 ms. from machine import WDT wdt = WDT(timeout=2000) # enable it with a timeout of 2s wdt.feed() wdt.feed() muss im Programm vor ablauf des WDT ausgeführt werden.
Zurück zur "Micropython Kurs 2023 Teil 2" Startseite |