From ddd4fc2eb31ef09c27866f1767fa152fc4626c0c Mon Sep 17 00:00:00 2001 From: Jorj Bauer Date: Thu, 13 Jul 2017 09:53:28 -0400 Subject: [PATCH] abstracting and refactoring around new first-gen hardware --- teensy/teensy-paddles.cpp | 36 ++++++++++++++++-------------------- teensy/teensy-paddles.h | 7 ++++++- teensy/teensy.ino | 8 +++++--- 3 files changed, 27 insertions(+), 24 deletions(-) diff --git a/teensy/teensy-paddles.cpp b/teensy/teensy-paddles.cpp index 0434a75..ae1306c 100644 --- a/teensy/teensy-paddles.cpp +++ b/teensy/teensy-paddles.cpp @@ -7,15 +7,17 @@ * C070: "start reading paddle data" - "may take up to 3 milliseconds" */ -#define PADDLE0 A24 -#define PADDLE1 A23 - #include "globals.h" -TeensyPaddles::TeensyPaddles() +TeensyPaddles::TeensyPaddles(uint8_t p0pin, uint8_t p1pin, bool p0rev, bool p1rev) { - pinMode(PADDLE0, INPUT); - pinMode(PADDLE1, INPUT); + this->p0pin = p0pin; + this->p1pin = p1pin; + this->p0rev = p0rev; + this->p1rev = p1rev; + + pinMode(p0pin, INPUT); + pinMode(p1pin, INPUT); } TeensyPaddles::~TeensyPaddles() @@ -24,26 +26,20 @@ TeensyPaddles::~TeensyPaddles() uint8_t TeensyPaddles::paddle0() { - uint8_t raw = 255 - analogRead(PADDLE0); + uint8_t raw = analogRead(p0pin); + if (p0rev) { + raw = 255 - raw; + } return raw; - - // 40 .. 200 on the old joystick - if (raw >200) raw = 200; - if (raw < 40) raw = 40; - - return map(raw, 40, 200, 0, 255); } uint8_t TeensyPaddles::paddle1() { - uint8_t raw = analogRead(PADDLE1); + uint8_t raw = analogRead(p1pin); + if (p1rev) { + raw = 255 - raw; + } return raw; - - // 60..200 on the old joystick - if (raw >200) raw = 200; - if (raw < 60) raw = 60; - - return map(raw, 60, 200, 0, 255); } void TeensyPaddles::startReading() diff --git a/teensy/teensy-paddles.h b/teensy/teensy-paddles.h index daae610..3f50994 100644 --- a/teensy/teensy-paddles.h +++ b/teensy/teensy-paddles.h @@ -4,10 +4,15 @@ class TeensyPaddles : public PhysicalPaddles { public: - TeensyPaddles(); + TeensyPaddles(uint8_t p0pin, uint8_t p1pin, bool p0rev, bool p1rev); virtual ~TeensyPaddles(); virtual uint8_t paddle0(); virtual uint8_t paddle1(); virtual void startReading(); + + uint8_t p0pin; + uint8_t p1pin; + bool p0rev; + bool p1rev; }; diff --git a/teensy/teensy.ino b/teensy/teensy.ino index cb0246c..567bf33 100644 --- a/teensy/teensy.ino +++ b/teensy/teensy.ino @@ -36,7 +36,7 @@ enum { D_SHOWBATTERY = 6, D_SHOWTIME = 7 }; -uint8_t debugMode = D_SHOWFPS; +uint8_t debugMode = D_NONE; static time_t getTeensy3Time() { return Teensy3Clock.get(); } @@ -77,7 +77,8 @@ void setup() Serial.println("Error while setting RTC"); } - spi.setPins(RF_MISO, RF_MOSI, RF_SCK); +#if 0 +spi.setPins(RF_MISO, RF_MOSI, RF_SCK); if (!nrf24.init()) Serial.println("init failed"); // Defaults after init are 2.402 GHz (channel 2), 2Mbps, 0dBm @@ -86,6 +87,7 @@ void setup() if (!nrf24.setRF(RH_NRF24::DataRate2Mbps, RH_NRF24::TransmitPower0dBm)) Serial.println("setRF failed"); Serial.println("nrf24 initialized"); +#endif TCHAR *device = (TCHAR *)_T("0:/"); f_mount (&fatfs, device, 0); /* Mount/Unmount a logical drive */ @@ -136,7 +138,7 @@ void setup() g_keyboard = new TeensyKeyboard(g_vm->getKeyboard()); Serial.println(" paddles"); - g_paddles = new TeensyPaddles(); + g_paddles = new TeensyPaddles(A23, A24, 1, 1); // Now that all the virtual hardware is glued together, reset the VM Serial.println("Resetting VM");