1
0
mirror of https://github.com/jscrane/r65emu.git synced 2024-12-21 12:29:51 +00:00

flexible hardware config

This commit is contained in:
Stephen Crane 2018-08-10 13:47:06 +01:00
parent 69f7837ac3
commit df4fc63c86

View File

@ -1,6 +1,6 @@
#include <UTFT.h>
#include <SPI.h> #include <SPI.h>
#include <SD.h> #include <SD.h>
#include <UTFT.h>
#include <SpiRAM.h> #include <SpiRAM.h>
#include "ps2drv.h" #include "ps2drv.h"
@ -12,26 +12,36 @@
Memory memory; Memory memory;
PS2Driver ps2; PS2Driver ps2;
#if defined(SPIRAM_CS)
spiram sram(SPIRAM_SIZE); spiram sram(SPIRAM_SIZE);
#endif
UTFT utft(TFT_MODEL, TFT_RS, TFT_WR, TFT_CS, TFT_RST); UTFT utft(TFT_MODEL, TFT_RS, TFT_WR, TFT_CS, TFT_RST);
static CPU *_cpu; static CPU *_cpu;
bool hardware_reset() { bool hardware_reset() {
bool success = true;
#if defined(SPIRAM_CS)
extern SPIClass SPIRAM_DEV; extern SPIClass SPIRAM_DEV;
SPIRAM_DEV.begin(); SPIRAM_DEV.begin();
SPIRAM_DEV.setModule(SPIRAM_SPI); SPIRAM_DEV.setModule(SPIRAM_SPI);
SPIRAM_DEV.setClockDivider(1); SPIRAM_DEV.setClockDivider(1);
SPIRAM_DEV.setDataMode(SPI_MODE0); SPIRAM_DEV.setDataMode(SPI_MODE0);
#endif
bool sd = SD.begin(SD_CS, 2, SD_SPI); #if defined(SD_CS)
success = SD.begin(SD_CS, 2, SD_SPI);
pinMode(SPI_CS, OUTPUT); // without this, the SPI-RAM isn't seen pinMode(SPI_CS, OUTPUT); // without this, the SPI-RAM isn't seen
#endif
#if defined(TFT_BACKLIGHT) #if defined(TFT_BACKLIGHT)
digitalWrite(TFT_BACKLIGHT, HIGH); digitalWrite(TFT_BACKLIGHT, HIGH);
#endif #endif
_cpu->reset(); _cpu->reset();
return sd; return success;
} }
void hardware_init(CPU &cpu) { void hardware_init(CPU &cpu) {
@ -42,10 +52,16 @@ void hardware_init(CPU &cpu) {
#if defined(TFT_BACKLIGHT) #if defined(TFT_BACKLIGHT)
pinMode(TFT_BACKLIGHT, OUTPUT); pinMode(TFT_BACKLIGHT, OUTPUT);
#endif #endif
#if defined(SD_CS)
pinMode(SD_CS, OUTPUT); pinMode(SD_CS, OUTPUT);
digitalWrite(SD_CS, HIGH); digitalWrite(SD_CS, HIGH);
#endif
#if defined(SPIRAM_CS)
pinMode(SPIRAM_CS, OUTPUT); pinMode(SPIRAM_CS, OUTPUT);
digitalWrite(SPIRAM_CS, HIGH); digitalWrite(SPIRAM_CS, HIGH);
#endif
} }
void hardware_checkpoint(Stream &s) { void hardware_checkpoint(Stream &s) {