32. Lektion: Timer: Unterschied zwischen den Versionen

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche
(Eine Timer-Instanz erzeugen)
K (Eine Timer-Instanz erzeugen)
Zeile 12: Zeile 12:
 
Wie immer in Micropython muss zuerst eine Instanz der Klasse Timer erzeugt werden.<br>
 
Wie immer in Micropython muss zuerst eine Instanz der Klasse Timer erzeugt werden.<br>
 
Dabei werden folgende Parameter übergeben:
 
Dabei werden folgende Parameter übergeben:
; ID
+
; ID / *
 
: Wird nicht als Keywordargument übergeben. Für Softwaretimer -1. Ist default und muss deshalb nicht angegeben werden.
 
: Wird nicht als Keywordargument übergeben. Für Softwaretimer -1. Ist default und muss deshalb nicht angegeben werden.
 
; mode
 
; mode
Zeile 31: Zeile 31:
 
Timer.init(*, mode=Timer.PERIODIC, freq=-1, period=-1, callback=None)
 
Timer.init(*, mode=Timer.PERIODIC, freq=-1, period=-1, callback=None)
 
</pre>
 
</pre>
 
  
 
== Lambda Funktion==
 
== Lambda Funktion==

Version vom 18. Dezember 2023, 21:00 Uhr

Timer

Der RP2040 enthält einen 64-bit Timer. 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) in Software realisiert. Deshalb ist ihre Anzahl im Prinzip nur durch den vorhandenen Speicherplatz begrenzt.

Jeder Timer besteht aus zwei 16-Bit-Kanälen, die zu einem 32-Bit-Timer zusammengeschaltet werden können. Die Betriebsart muss für jeden Timer konfiguriert werden, aber dann kann die Periode (oder die Frequenz) für jeden Kanal unabhängig konfiguriert werden. Mit Hilfe der Callback-Methode kann das Timer-Ereignis eine Python-Funktion aufrufen (Interrupt).

Mit einem 16-bit Timer kann maximal eine Zeit von 65,535 mS erreicht werden. Für längere Zeiten können beide Kanäle zu einem 32-bit Timer zusammen geschaltet werden. Dann sind Zeiten bis 4294,967.296 Sekunden oder > 71 Minuten zu erreichen.

Eine Timer-Instanz erzeugen

Wie immer in Micropython muss zuerst eine Instanz der Klasse Timer erzeugt werden.
Dabei werden folgende Parameter übergeben:

ID / *
Wird nicht als Keywordargument übergeben. Für Softwaretimer -1. Ist default und muss deshalb nicht angegeben werden.
mode
Timer.PERIODIC oder Timer.ONE_SHOT.
period / freq
Entweder oder. period in mS oder freq in Hz (nur ganze Zahlen).
callback
Funktion die ausgeführt werden soll.
from machine import Timer

Timer(*, mode=Timer.PERIODIC, freq=-1, period=-1, callback=None)

tim = Timer(period=5000, mode=Timer.ONE_SHOT, callback=lambda t:print(1))
tim.init(period=2000, mode=Timer.PERIODIC, callback=lambda t:print(2))

Timer.init(*, mode=Timer.PERIODIC, freq=-1, period=-1, callback=None)

Lambda Funktion

WDT – Watchdog Timer

Timer Methoden