Einführung
Der Knopf am M5StickC Plus2 befindet sich an der Seite des Geräts und wird typischerweise für Benutzereingaben oder Steuerfunktionen verwendet. Der Knopf kann konfiguriert werden, um verschiedene Operationen auszuführen, wie Kurzdrücken, Langdrücken und Doppelklicken, um unterschiedlichen Steuerbedürfnissen gerecht zu werden. Durch Programmierung können Benutzer verschiedene Funktionen dem Knopf zuweisen, wie das Initiieren einer bestimmten Aufgabe oder das Steuern des Betriebsmodus des Geräts.
Wie sehen Sie die zugrunde liegende Logik?
Wenn Sie sich für die zugrunde liegende Logik oder Funktionen während des Lernprozesses interessieren, können Sie auf die relevanten Links klicken, um die Details weiter zu erkunden.
1. Abhängige Bibliothek:
- M5GFX: https://github.com/m5stack/M5GFX
- M5Unified: https://github.com/m5stack/M5Unified
- M5StickCPlus2: https://github.com/m5stack/M5StickCPlus2
2. Normalerweise befindet es sich im src Verzeichnis.


Code-Kommentare und Funktionsbeschreibungen


In M5Stack sind die gängigen Rotationsanpassungen wie folgt:
- 0: Standardausrichtung (Hochformat).
- 1: 90 Grad im Uhrzeigersinn drehen (Querformat).
- 2: 180 Grad im Uhrzeigersinn drehen (auf dem Kopf stehendes Hochformat).
- 3: 270 Grad im Uhrzeigersinn drehen (Querformat, entgegengesetzt zu 1).

2. StickCP2.Display.drawString('Button Test', StickCP2.Display.width() / 2,StickCP2.Display.height() / 2);
- Button Test -> Zeigt den Textinhalt an.
- StickCP2.Display.width() / 2 -> Berechnet die Hälfte der Bildschirmbreite, um die X-Koordinate für die Positionierung des Textes in der horizontalen Mitte des Bildschirms zu bestimmen.
- StickCP2.Display.height() / 2 -> Berechnet die Hälfte der Bildschirmhöhe, um die Y-Koordinate für die Positionierung des Textes in der vertikalen Mitte des Bildschirms zu bestimmen.

Die update()-Funktion wird verwendet, um den Gerätestatus zu aktualisieren oder Ereignisse zu handhaben und ist häufig im Code für den M5StickC Plus 2 (oder ähnliche Geräte) zu finden. Diese Funktion wird oft in den folgenden Szenarien verwendet:
- Aktualisieren des Displayinhalts: Wenn der Bildschirminhalt kontinuierlich aktualisiert oder aufgefrischt werden muss, kann die update()-Funktion verwendet werden, um das Display regelmäßig zu aktualisieren.
- Verarbeiten von Knopf-Eingaben: Wenn das Gerät über Knöpfe oder Touch-Eingaben verfügt, kann die update()-Funktion diese Eingaben erkennen und die Knopfzustände entsprechend aktualisieren.
- Timeraufgaben oder Ereignisbehandlung: Die update()-Funktion kann auch verwendet werden, um zeitgesteuerte Aufgaben auszuführen oder zeitlich periodische Ereignisse zu handhaben, um das Gerät reibungslos zu betreiben.
In den Entwicklungsbibliotheken für die M5Stack-Serie wird update() typischerweise als bewährte Methode zur Aufrechterhaltung des Gerätestatus und zum Verwalten von Sensoren oder Eingaben verwendet. Jedes Mal, wenn die update()-Funktion aufgerufen wird, überprüft das Gerät den aktuellen Zustand und führt die erforderlichen Updates durch.

Funktion zur Erkennung, ob Knopf A gedrückt wurde:
- Die wasPressed()-Methode wird verwendet, um zu prüfen, ob Knopf A während der aktuellen oder der vorherigen Schleife gedrückt wurde. Sie gibt einen booleschen Wert zurück: true, wenn Knopf A gedrückt wurde, und false, wenn nicht.
- wasPressed() wird typischerweise für Ereignis-Auslöser verwendet, wie das Wechseln des Displayinhalts, das Aktivieren einer Funktion oder das Steuern des Verhaltens des Geräts. Im Gegensatz zur regulären isPressed() ist wasPressed() besser geeignet, um ein einzelnes Drückereignis zu erfassen, anstatt einen kontinuierlichen gedrückten Zustand.

5. StickCP2.BtnA.wasReleased()
Überprüft, ob Knopf A losgelassen wurde. Wenn Knopf A losgelassen wurde, gibt die wasReleased()-Funktion true zurück, und der Code innerhalb der geschweiften Klammern wird ausgeführt. Diese Funktion eignet sich zur Erkennung des Loslassereignisses des Knopfes, nicht seines gedrückten Zustands.
