diff --git a/src/N64Micro.cpp b/src/N64Micro.cpp index 000037a..e58f055 100644 --- a/src/N64Micro.cpp +++ b/src/N64Micro.cpp @@ -42,7 +42,9 @@ GAMECUBE: I tie all 3 grounds together */ -#define DATA_PIN 2 +#include "pins.h" + +#define DATA_PIN OR_PIN_2 // how often to poll, 100? 14? polling must not occur faster than every 20 ms #define POLL_DELAY 14 diff --git a/src/OhmMeter.cpp b/src/OhmMeter.cpp index 69f5a33..f55ffff 100644 --- a/src/OhmMeter.cpp +++ b/src/OhmMeter.cpp @@ -11,15 +11,13 @@ micro values: #if defined(ARDUINO_ARCH_ESP32) -int analogPin = 35; -int Vin = 3.3; -auto steps = 4095.0; +float Vin = 3.3; +float steps = 4095.0; #else -int analogPin = 9; -int Vin = 5; -auto steps = 1024.0; +float Vin = 5; +float steps = 1024.0; #endif // ARDUINO_ARCH_ESP32 @@ -28,6 +26,8 @@ float R1 = 1000; #include "Arduino.h" +#include "pins.h" + int raw = 0; float Vout = 0; float R2 = 0; @@ -38,7 +38,7 @@ void setup() { } void loop() { - raw = analogRead(analogPin); + raw = analogRead(OR_PIN_9); if (raw) { buffer = raw * Vin; Vout = (buffer) / steps; diff --git a/src/Playstation.cpp b/src/Playstation.cpp index a2cc43a..9a830ec 100644 --- a/src/Playstation.cpp +++ b/src/Playstation.cpp @@ -1,6 +1,3 @@ - -#include "Arduino.h" - /* LOOKING AT THE PLUG ------------------------------- @@ -22,25 +19,24 @@ PIN # USAGE (colors from my extension cable, check your own) */ -#if defined(ARDUINO_ARCH_ESP32) +#include "Arduino.h" -#define DATA1 2 -#define CMD1 4 -#define ATT1 16 -#define CLK1 17 +#include "pins.h" + +#define DATA1 OR_PIN_2 +#define CMD1 OR_PIN_3 +#define ATT1 OR_PIN_4 +#define CLK1 OR_PIN_5 + +#if defined(ARDUINO_ARCH_ESP32) #define CTRL_BYTE_DELAY 18 #else -#define DATA1 2 -#define CMD1 3 -#define ATT1 4 -#define CLK1 5 - #define CTRL_BYTE_DELAY 6 -#endif // esp32 vs generic pins +#endif // esp32 vs micro delay #ifndef GAMEPAD_COUNT #define GAMEPAD_COUNT 4 diff --git a/src/RadioReceiver.cpp b/src/RadioReceiver.cpp index 1760bb4..e021f16 100644 --- a/src/RadioReceiver.cpp +++ b/src/RadioReceiver.cpp @@ -9,17 +9,9 @@ #include "gamepad/Gamepad.h" -#if defined(ARDUINO_ARCH_ESP32) -// esp32 -#define CE_PIN 18 -#define CSN_PIN 19 -#else -// micro -#define CE_PIN 7 -#define CSN_PIN 8 -#endif // ARDUINO_ARCH_ESP32 +#include "pins.h" -RF24 radio(CE_PIN, CSN_PIN); +RF24 radio(OR_PIN_7, OR_PIN_8); // CE, CSN const byte address[13] = "OpenRetroPad"; diff --git a/src/SegaGenesis.cpp b/src/SegaGenesis.cpp index 315a2d0..c040eed 100644 --- a/src/SegaGenesis.cpp +++ b/src/SegaGenesis.cpp @@ -43,18 +43,20 @@ enum SC_BTN_RIGHT = 8, }; +#include "pins.h" + +static const int DATA_PIN_SELECT[GAMEPAD_COUNT] = { + OR_PIN_5, +#if GAMEPAD_COUNT > 1 + OR_PIN_7, +#endif +}; + #if CODE_PLATFORM == 2 #define OPT_PIN_READ1(X) (bitRead(reg1, DATA_PIN[c][X])) #define OPT_PIN_READ2(X) (bitRead(reg2, DATA_PIN[c][X])) -static const int DATA_PIN_SELECT[GAMEPAD_COUNT] = { - 5, -#if GAMEPAD_COUNT > 1 - 7, -#endif -}; - //individual data pin BIT for each controller, they are read in bulk static const int DATA_PIN[GAMEPAD_COUNT][PIN_COUNT] = { {3, 2, 1, 0, 4, 7}, @@ -68,40 +70,14 @@ static const int DATA_PIN[GAMEPAD_COUNT][PIN_COUNT] = { #define OPT_PIN_READ1(X) (digitalRead(DATA_PIN[c][X])) #define OPT_PIN_READ2(X) (digitalRead(DATA_PIN[c][X])) -#if defined(ARDUINO_ARCH_ESP32) -static const int DATA_PIN_SELECT[GAMEPAD_COUNT] = { - 17, -#if GAMEPAD_COUNT > 1 - 18, -#endif -}; - //individual data pin for each controller static const int DATA_PIN[GAMEPAD_COUNT][PIN_COUNT] = { - {15, 1, 2, 4, 16, 5}, + {OR_PIN_1, OR_PIN_11, OR_PIN_2, OR_PIN_3, OR_PIN_4, OR_PIN_6}, #if GAMEPAD_COUNT > 1 - {26, 25, 33, 32, 12, 14}, + {OR_PIN_18, OR_PIN_19, OR_PIN_20, OR_PIN_21, OR_PIN_14, OR_PIN_15}, #endif }; -#else // end esp32 pins, start generic pins - -static const int DATA_PIN_SELECT[GAMEPAD_COUNT] = { - 5, -#if GAMEPAD_COUNT > 1 - 7, -#endif -}; - -//individual data pin for each controller -static const int DATA_PIN[GAMEPAD_COUNT][PIN_COUNT] = { - {1, 0, 2, 3, 4, 6}, -#if GAMEPAD_COUNT > 1 - {18, 19, 20, 21, 14, 15}, -#endif -}; -#endif // esp32 vs generic pins - #endif // CODE_PLATFORM const byte SC_CYCLE_DELAY = 10; // Delay (µs) between setting the select pin and reading the button pins diff --git a/src/SnesNes.cpp b/src/SnesNes.cpp index 9d6786f..b8767fa 100644 --- a/src/SnesNes.cpp +++ b/src/SnesNes.cpp @@ -6,46 +6,25 @@ #endif #define BUTTON_COUNT 12 // SNES has 12, NES only has 8 +#include "pins.h" + //shared pins between all controllers -#if defined(ARDUINO_ARCH_ESP32) -// ESP32 -static const int LATCH_PIN = 2; // brown -static const int CLOCK_PIN = 4; // white +static const int LATCH_PIN = OR_PIN_2; // brown +static const int CLOCK_PIN = OR_PIN_3; // white //individual data pin for each controller static const int DATA_PIN[GAMEPAD_COUNT] = { - 26, + OR_PIN_18, #if GAMEPAD_COUNT > 1 - 25, + OR_PIN_19, #endif #if GAMEPAD_COUNT > 2 - 33, + OR_PIN_20, #endif #if GAMEPAD_COUNT > 3 - 32, + OR_PIN_21, #endif }; - -#else -// micro -static const int LATCH_PIN = 2; // brown -static const int CLOCK_PIN = 3; // white - -//individual data pin for each controller -static const int DATA_PIN[GAMEPAD_COUNT] = { - 18, -#if GAMEPAD_COUNT > 1 - 19, -#endif -#if GAMEPAD_COUNT > 2 - 20, -#endif -#if GAMEPAD_COUNT > 3 - 21, -#endif -}; - -#endif // power red, ground black //#define DEBUG diff --git a/src/gamepad/Radio-Gamepad/RadioGamepad.h b/src/gamepad/Radio-Gamepad/RadioGamepad.h index 8c525cc..d5b9afe 100644 --- a/src/gamepad/Radio-Gamepad/RadioGamepad.h +++ b/src/gamepad/Radio-Gamepad/RadioGamepad.h @@ -13,7 +13,9 @@ #include "../common.h" -RF24 radio(7, 8); // CE, CSN +#include "../../pins.h" + +RF24 radio(OR_PIN_7, OR_PIN_8); // CE, CSN const byte address[13] = "OpenRetroPad"; class RadioGamepad : public AbstractGamepad { diff --git a/src/pins.h b/src/pins.h new file mode 100644 index 0000000..be543ac --- /dev/null +++ b/src/pins.h @@ -0,0 +1,63 @@ + +// this let's me keep the db-25 pin mapping naming the same across all inputs/outputs + +#ifndef OR_PINS_H +#define OR_PINS_H + +#if defined(ARDUINO_ARCH_ESP32) +// esp32 +#define OR_PIN_1 15 +#define OR_PIN_2 2 +#define OR_PIN_3 4 +#define OR_PIN_4 16 +#define OR_PIN_5 17 +#define OR_PIN_6 5 +#define OR_PIN_7 18 +#define OR_PIN_8 19 +#define OR_PIN_9 35 +#define OR_PIN_10 3 +#define OR_PIN_11 1 +//#define OR_PIN_12 22 +//#define OR_PIN_13 23 +#define OR_PIN_14 12 +#define OR_PIN_15 14 +#define OR_PIN_16 13 +//#define OR_PIN_17 27 +#define OR_PIN_18 26 +#define OR_PIN_19 25 +#define OR_PIN_20 33 +#define OR_PIN_21 32 +//#define OR_PIN_22 22 +//#define OR_PIN_23 23 +//#define OR_PIN_24 24 +//#define OR_PIN_25 25 +#else +// micro +#define OR_PIN_1 1 +#define OR_PIN_2 2 +#define OR_PIN_3 3 +#define OR_PIN_4 4 +#define OR_PIN_5 5 +#define OR_PIN_6 6 +#define OR_PIN_7 7 +#define OR_PIN_8 8 +#define OR_PIN_9 9 +#define OR_PIN_10 10 +#define OR_PIN_11 0 +//#define OR_PIN_12 12 +//#define OR_PIN_13 13 +#define OR_PIN_14 14 +#define OR_PIN_15 15 +#define OR_PIN_16 16 +//#define OR_PIN_17 17 +#define OR_PIN_18 18 +#define OR_PIN_19 19 +#define OR_PIN_20 20 +#define OR_PIN_21 21 +//#define OR_PIN_22 22 +//#define OR_PIN_23 23 +//#define OR_PIN_24 24 +//#define OR_PIN_25 25 +#endif // ARDUINO_ARCH_ESP32 + +#endif // OR_PINS_H