Add a slightly more complex example that uses every button type.

This commit is contained in:
Anna Rose 2015-11-12 00:31:09 -05:00
parent 763e55d518
commit 97056ddee6
3 changed files with 25 additions and 2 deletions

View File

@ -163,7 +163,7 @@ void Joystick::_UpdateButton(Button& button, uint8_t index) {
if (button.pullup) value = _InvertSignal(value);
switch (button.type) {
case BUTTON_MAINTAINED:
case BUTTON_LATCHED:
if (value == HIGH) PressButton(index);
else ReleaseButton(index);
break;

View File

@ -15,7 +15,7 @@
#define JOYSTICK_NUM_BYTES (JOYSTICK_NUM_BUTTONS+7)/8
enum ButtonType {
BUTTON_MAINTAINED = 0x1,
BUTTON_LATCHED = 0x1,
BUTTON_PULSED = 0x2,
BUTTON_PULSED_DOUBLE_ACTION = 0x4
};

View File

@ -0,0 +1,23 @@
// A button box example using all of the button types.
// This is the code used in the Black Box project.
// TODO: add link to blog post, once it exists.
#include <Joystick.h>
Joystick joystick;
void setup() {
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
joystick.Init();
joystick.AddButton(2, BUTTON_PULSED_DOUBLE_ACTION);
joystick.AddButton(3, BUTTON_PULSED_DOUBLE_ACTION);
joystick.AddButton(4, BUTTON_PULSED_DOUBLE_ACTION);
joystick.AddButton(5, BUTTON_MAINTAINED);
joystick.AddButton(6, BUTTON_PULSED);
}
void loop () {
joystick.Update();
}