M5Dial BTN: Unterschied zwischen den Versionen
Peter (Diskussion | Beiträge) |
Peter (Diskussion | Beiträge) |
||
Zeile 39: | Zeile 39: | ||
-------------------- | -------------------- | ||
</pre> | </pre> | ||
Folgendes zeigt die Reaktion auf: | |||
; bei der Abfrage gedrückt | ; bei der Abfrage gedrückt | ||
: is pressed | : is pressed |
Version vom 1. Mai 2024, 15:21 Uhr
Beschreibung
Der M5Dial besitzt einen Taster (Btn). Dieser befindet sich unter dem orangenen Ring unten, unter der M5 Gravur.
Dieser Button kann gepollt werden oder einen Interrupt auslösen.
Es können 9 verschiedene Betätigungen unterschieden werden.
Einrichtung
Er muss nicht initialisiert werden.
Wenn er einen Interrupt auslösen soll, so muss ihm aber eine ISR zugewiesen werden.
Btn abfragen (polling)
M5.update() x = BtnA.isHolding() x = BtnA.isPressed() x = BtnA.isReleased() x = BtnA.wasClicked() x = BtnA.wasDoubleClicked() x = BtnA.wasHold() x = BtnA.wasPressed() x = BtnA.wasReleased() x = BtnA.wasSingleClicked()
Ermitteln der Funktionen
Was bedeuten die verschiedenen Werte? Dazu habe ich einige Tests mit Blockly unternommen.
BtnA_Test_001
Dieses Programm gibt einen Vorlauf mit grünem Display. Dann wechselt die Farbe auf Rot und die verschiedenen Button Zustände werden abgefragt. Wird True zurückgegeben so wird dieser Zustand in der Konsole ausgegeben.
Ohne Betätigung wird nur is released zurückgegeben:
is released --------------------
Folgendes zeigt die Reaktion auf:
- bei der Abfrage gedrückt
- is pressed
- vor der nächsten Abfrage wieder losgelassen
- is released
- bei der Abfrage gedrückt
- is pressed
- bei der nächsten Abfrage noch immer gedrückt
- is holding
- vor der übernächsten Abfrage wieder losgelassen
- is released
Damit sind diese drei Werte logisch erklärt.
Btn als Interrupt
Es gibt folgende Interrupt Trigger (BtnA.CB_TYPE.):
- WAS_CLICKED
- WAS_DOUBLECLICKED
- WAS_HOLD
- WAS_PRESSED
- WAS_RELEASED
def btnA_wasClicked_event(state): global x pass
M5.begin() BtnA.setCallback(type=BtnA.CB_TYPE.WAS_CLICKED, cb=btnA_wasClicked_event)