Bug fixes.

This commit is contained in:
2021-11-24 05:40:28 +00:00
parent 690afdbce5
commit a9c80c2ed5
4 changed files with 33 additions and 28 deletions

View File

@ -1,5 +1,6 @@
// An example sketch using the joystick library, demonstrating recommended usage
// of all features.
// This code loads the sketch in debug mode. Connect to the Arduino's serial port at 115200 baud to read the output.
#include <Joystick.h>
#include <Matrix.h>
@ -18,17 +19,16 @@ using namespace admux;
#define BTN3 6
#define BTN4 7
// pins 8-13 are attached to a 3x3 scanning input matrix. Pins 8-10 are the row pins, 11-13 are the column pins
// However, note that the column pins are 0-indexed; the actual pins are defined in the Matrix object later.
#define MATRIX1 8,0
#define MATRIX2 9,0
#define MATRIX3 10,0
#define MATRIX4 8,1
#define MATRIX5 9,1
#define MATRIX6 10,1
#define MATRIX7 8,2
#define MATRIX8 9,2
#define MATRIX9 10,2
// pins 8-13 are attached to a 3x3 scanning input matrix. Pins 8-10 are the row pins, 11-13 are the column pins.
#define MATRIX1 8,11
#define MATRIX2 9,11
#define MATRIX3 10,11
#define MATRIX4 8,12
#define MATRIX5 9,12
#define MATRIX6 10,12
#define MATRIX7 8,13
#define MATRIX8 9,13
#define MATRIX9 10,13
// A multiplexer is attached to pins A1-A5
#define MUX_SIG A1 // the multiplexer's signal pin is on Analog 1
@ -40,14 +40,18 @@ using namespace admux;
#define MUX_BTN3 2
bool debug = false;
bool debug = true;
Joystick js(debug);
void setup() {
js.Init();
Serial.println("Adding encoder.");
js.AddEncoder(ENCODER, ENCODER_PULSED_SPLIT);
// Different types of button programming are available. BUTTON_PASSTHRU simply passes on the button's
// real state, and will be the most common, but you can also change how the button works in software like so...
Serial.println("Adding directly connected buttons.");
// With BUTTON_PULSED, no matter how long the button stays held down, it will only send a button press for 250ms
// then deactivate until pressed again.
@ -69,8 +73,9 @@ void setup() {
// See http://blog.komar.be/how-to-make-a-keyboard-the-matrix/ for a very detailed discussion of how these work.
// This is a 3x3 example, so we can get 9 buttons out of 6 inputs.
// For faster read results, always add buttons so that buttons with the same *column* are grouped together.
Serial.println("Adding matrix.");
uint8_t cols[] = {11, 12, 13};
Matrix* matrix = new Matrix(cols);
Matrix* matrix = new Matrix(cols, 3);
js.AddMatrixButton(MATRIX1, matrix, BUTTON_PASSTHRU);
js.AddMatrixButton(MATRIX2, matrix, BUTTON_PASSTHRU);
js.AddMatrixButton(MATRIX3, matrix, BUTTON_PASSTHRU);
@ -83,12 +88,13 @@ void setup() {
// another way to get more room for our inputs, this code adds a 16-channel multiplexer.
// It only attaches 3 buttons, but could attach up to channel 15.
Serial.println("Adding multiplexer.");
Mux* mux = new Mux(Pin(MUX_SIG, INPUT_PULLUP, PinType::Digital), Pinset(MUX_ADDR));
js.AddMuxButton(MUX_BTN1, mux, BUTTON_PASSTHRU);
js.AddMuxButton(MUX_BTN2, mux, BUTTON_PASSTHRU);
js.AddMuxButton(MUX_BTN3, mux, BUTTON_PASSTHRU);
js.Init();
Serial.println("Example joystick fully configured.");
}
void loop() {