abstracting and refactoring around new first-gen hardware

This commit is contained in:
Jorj Bauer 2017-07-13 09:53:28 -04:00
parent 1bb73c959f
commit ddd4fc2eb3
3 changed files with 27 additions and 24 deletions

View File

@ -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()

View File

@ -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;
};

View File

@ -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");