Interrupts

Aus Micropython Referenz
Zur Navigation springen Zur Suche springen

In Arbeit

Hier die Übersetzung von DeepL.com von https://docs.micropython.org/en/v1.12/pyboard/tutorial/switch.html?highlight=interrupts Sie bezieht sich speziell auf das Pyboard.

5.2. Technische Details von /interrupts)

Schauen wir uns die Details des Switch-Callbacks an. Wenn Sie eine Funktion mit sw.caiiback() registrieren, setzt der Schalter einen externen Interrupt-Trigger (fallende Flanke) an dem Pin, mit dem der Schalter verbunden ist. Das bedeutet, dass der Mikrocontroller auf dem Pin auf jede Änderungen ab, und es wird Folgendes geschehen:

1. Wenn der Schalter gedrückt wird, kommt es zu einer Änderung an dem Pin (der Pin geht von Low auf High), und der Mikrocontroller registriert diese Änderung.

2. Der Mikrocontroller beendet die Ausführung des aktuellen Maschinenbefehls, stoppt die Ausführung und speichert seinen aktuellen Zustand (schiebt die Register auf den Stack). Dies hat zur Folge, dass jeglicher Code angehalten wird Code, zum Beispiel Ihr laufendes Python-Skript.

3. Der Mikrocontroller beginnt mit der Ausführung des speziellen Interrupt-Handlers, der mit dem externen Trigger des Schalters externen Auslöser. Dieser Interrupt-Handler holt sich die Funktion, die Sie mit =w.ca11back() registriert haben, und führt sie aus.

4, Ihre Callback-Funktion wird ausgeführt, bis sie beendet ist, und gibt die Kontrolle an den Interrupt-Handler des Schalters Handler zurück.

5. Der Switch-Interrupt-Handler kehrt zurück, und der Mikrocontroller wird benachrichtigt, dass der Interrupt bearbeitet wurde.

6. Der Mikrocontroller stellt den Zustand wieder her, den er in Schritt 2 gespeichert hat.

7. Die Ausführung des Codes, der zu Beginn ausgeführt wurde, wird fortgesetzt. Abgesehen von der Pause merkt dieser merkt dieser Code nicht, dass er unterbrochen wurde.

Die obige Abfolge von Ereignissen wird etwas komplizierter, wenn mehrere iNESFFUBES) gleichzeitig auftreten zur gleichen Zeit auftreten. In diesem Fall wird der Interrupt mit der höchsten Priorität zuerst ausgelöst, dann die anderen in der Reihenfolge ihrer ihrer Priorität. Der Switch-Interrupt wird auf die niedrigste Priorität gesetzt.