I recently picked up Erik_Gee's common ground board (its great by the way

Code: Select all
Game_Boy_Zero: In function 'void setupKeys()':
Game_Boy_Zero:22: warning: large integer implicitly truncated to unsigned type
keys[0] = key(KEY_F4, 0);
^
Game_Boy_Zero:25: warning: large integer implicitly truncated to unsigned type
keys[3] = key(KEY_LEFT_ARROW, 3);
^
Game_Boy_Zero:26: warning: large integer implicitly truncated to unsigned type
keys[4] = key(KEY_UP_ARROW, 4);
^
Game_Boy_Zero:27: warning: large integer implicitly truncated to unsigned type
keys[5] = key(KEY_DOWN_ARROW, 5);
^
Game_Boy_Zero:28: warning: large integer implicitly truncated to unsigned type
keys[6] = key(KEY_RIGHT_ARROW, 6);
^
Game_Boy_Zero:30: warning: large integer implicitly truncated to unsigned type
keys[8] = key(KEY_ENTER, 8);
^
Sketch uses 9236 bytes (14%) of program storage space. Maximum is 63488 bytes.
Global variables use 3704 bytes (45%) of dynamic memory, leaving 4488 bytes for local variables. Maximum is 8192 bytes.
Code: Select all
#include <Bounce.h>
#define NUM_KEYS 15
struct Key {
char keycode;
Bounce* bounce;
};
Key keys[NUM_KEYS];
Key key(char keycode, int pin) {
Key *ret = new Key;
ret->keycode = keycode;
ret->bounce = new Bounce(pin, 10);
pinMode(pin, INPUT_PULLUP);
return *ret;
}
void setupKeys() {
keys[0] = key(KEY_F4, 0);
keys[1] = key('r', 1);
keys[2] = key('l', 2);
keys[3] = key(KEY_LEFT_ARROW, 3);
keys[4] = key(KEY_UP_ARROW, 4);
keys[5] = key(KEY_DOWN_ARROW, 5);
keys[6] = key(KEY_RIGHT_ARROW, 6);
keys[7] = key('s', 7);
keys[8] = key(KEY_ENTER, 8);
keys[9] = key('z', 9);
keys[10] = key('c', 10);
keys[11] = key('x', 11);
keys[12] = key('y', 12);
keys[13] = key('b', 13);
keys[14] = key('a', 14);
}
void setup() {
setupKeys();
Keyboard.begin();
// pinMode(0, INPUT_PULLUP);
}
void loop() {
for (int i = 0; i < NUM_KEYS; i++) {
keys[i].bounce->update();
if (keys[i].bounce->fallingEdge()) {
Keyboard.press(keys[i].keycode);
} else if (keys[i].bounce->risingEdge()) {
Keyboard.release(keys[i].keycode);
}
}
}