Eigene Erweiterung funktioniert nicht - warum?

Hallo zusammen,

ich habe ein Gamepad von Waveshare hier liegen: Joystick for micro:bit - Waveshare Wiki
Die Microbit Erweiterung ist hier zu finden: GitHub - waveshare/JoyStick

Ich habe das Gamepad über eine Calliobit Pro Platine von Michael Klein angeschlossen. Physikalisch funktioniert das auch. Wenn ich die Pins über Calliope Core Funktionen abfrage, und z.B. auf der seriellen Schnittstelle mir die Pins ausgeben lasse, ist alles OK. Meine angepasste Erweiterung scheint aber nicht zu funktionieren. Es macht den Eindruck, als wenn die Events für die Tastendrücke nicht ausgelöst werden. In meinem Beispiel habe ich die Taste A über die angepasste Erweiterung abgefragt (geht nicht) und die Taste B über den PIN C4 (ist so über die Calliobit Platine gemappt). Das funktioniert.

Hier meine angepasste Erweiterung (nur die Pins sind an meine Bedürfnisse angepasst) GitHub - digitaleforscher/Waveshare_Gamepad_for_Calliope: angepasste Waveshare Bibliothek für den Calliope mini

Hier mein Beispiel: https://makecode.calliope.cc/_6bja9wdoPLhk

Irgendwas mache ich noch bei der eigenen Erweiterung falsch. Ich weiß nur nicht was.

Martin

Bin gerade knapp an Zeit, sonst hätte ich schon geantwortet. Ich hatte sowas für mein Fischertechnikboard implementiert. Vielleicht fällt Dir beim drüberschauen schon was auf.

Durch das Ausklammern der Zeile 88 bei dir
wird glaube ich kein Event ausgelöst.

Die Zeile ist aber auch im Original Repo von Waveshare auskommentiert.

Ich glaube im Moment eher, das es an dieser Enumeration liegt:

enum KEY {
 P = 0,
 A = 1,
 B = 2,
 C = 3,
 D = 4,
 E = 5,
 F = 6,
}

Mit KEY wird in der Funktion onKey() gearbeitet. Wenn die Werte nicht stimmen, passiert auch nichts.

Da es sich um ein eher grundlegendes Problem handelt, geht es erstmal hier weiter: Pins & Events in eigenen Erweiterungen