apple2idiot/apple2idiot.ino

104 lines
2.9 KiB
Arduino
Raw Normal View History

2021-07-01 01:29:27 +00:00
/*
*/
2021-06-30 21:40:29 +00:00
// Load Wi-Fi library
2021-07-01 20:46:08 +00:00
//#include <WiFi.h>
2021-07-01 01:29:27 +00:00
2021-06-30 21:40:29 +00:00
// Replace with your network credentials
2021-07-01 20:46:08 +00:00
//const char* ssid = "GSO";
//const char* password = "xerxes27";
//WiFiServer server(80);
//String http_header;
2021-06-30 21:40:29 +00:00
/* OUTPUTS (numbers mean GPIO port) */
2021-07-03 19:20:36 +00:00
#define DATA_0_PIN 12
2021-07-01 01:29:27 +00:00
#define DEVSEL_PIN 35
2021-06-30 21:40:29 +00:00
2021-07-03 19:20:36 +00:00
unsigned int data_byte = 0;
2021-06-30 21:40:29 +00:00
2021-07-03 19:20:36 +00:00
/* Variables shared between ISR and main code need to be volatile */
volatile bool isr_handled = false;
volatile uint32_t raw_register_read;
volatile uint16_t raw_register1_read;
2021-07-01 20:46:08 +00:00
/*################################################
# ISR #
################################################*/
void IRAM_ATTR isrDEVSEL(void) {
2021-07-03 19:20:36 +00:00
raw_register_read = REG_READ(GPIO_IN_REG);
raw_register1_read = REG_READ(GPIO_IN1_REG);
2021-07-01 20:46:08 +00:00
isr_handled = true;
}
2021-07-01 01:29:27 +00:00
2021-07-01 20:46:08 +00:00
/*################################################
# Setup #
################################################*/
2021-06-30 21:40:29 +00:00
void setup() {
2021-07-01 20:46:08 +00:00
Serial.begin(115200);
2021-07-03 19:20:36 +00:00
for (int i=0; i < 8; i++) {
pinMode(DATA_0_PIN + i, INPUT);
2021-06-30 21:40:29 +00:00
}
2021-07-03 19:20:36 +00:00
pinMode(DEVSEL_PIN, INPUT);
pinMode(19, INPUT);
pinMode(21, INPUT);
pinMode(22, INPUT);
pinMode(23, INPUT);
pinMode(24, INPUT);
pinMode(25, INPUT);
pinMode(26, INPUT);
pinMode(27, INPUT);
pinMode(32, INPUT);
pinMode(33, INPUT);
pinMode(36, INPUT);
pinMode(39, INPUT);
2021-07-01 20:46:08 +00:00
Serial.println("");
Serial.println("Starting.");
2021-07-03 19:20:36 +00:00
//attachInterrupt(DEVSEL_PIN, isrDEVSEL, LOW);
2021-07-01 20:46:08 +00:00
attachInterrupt(DEVSEL_PIN, isrDEVSEL, CHANGE);
2021-07-03 19:20:36 +00:00
//attachInterrupt(DEVSEL_PIN, isrDEVSEL, RISING);
//attachInterrupt(DEVSEL_PIN, isrDEVSEL, FALLING);
2021-06-30 21:40:29 +00:00
}
2021-07-01 20:46:08 +00:00
/*################################################
# Main #
################################################*/
2021-07-03 19:20:36 +00:00
const long loopTimeInterval = 2500; // interval at which to blink (milliseconds)
2021-07-01 20:46:08 +00:00
int devsel_state = 0;
unsigned long lastLoopMillis = 0;
2021-06-30 21:40:29 +00:00
void loop() {
2021-07-01 20:46:08 +00:00
if (isr_handled) {
2021-07-03 19:20:36 +00:00
//data_byte = raw_register_read >> 12 & 0b00000000000011111111;
//Serial.print("RAWDATA: ");
//Serial.println(raw_register_read, BIN);
//Serial.print("DATA: ");
//Serial.println(data_byte, BIN);
//Serial.println(data_byte);
2021-07-01 20:46:08 +00:00
isr_handled = false;
2021-07-03 19:20:36 +00:00
Serial.print(raw_register_read, BIN);
Serial.print(" : ");
Serial.println(raw_register1_read, BIN);
2021-07-01 20:46:08 +00:00
}
2021-07-03 19:20:36 +00:00
2021-07-01 20:46:08 +00:00
if (millis() - lastLoopMillis > loopTimeInterval) {
2021-07-03 19:20:36 +00:00
Serial.println("--LOOP READ--");
//Serial.print("RAWDATA: ");
//Serial.println(raw_register_read, BIN);
//raw_register_read = REG_READ(GPIO_IN_REG);
//Serial.println("--LOOP CALLED ISR--");
//isrDEVSEL();
raw_register_read = REG_READ(GPIO_IN_REG);
raw_register1_read = REG_READ(GPIO_IN1_REG);
isr_handled = true;
2021-07-01 20:46:08 +00:00
lastLoopMillis = millis();
2021-06-30 21:40:29 +00:00
}
2021-07-03 19:20:36 +00:00
2021-06-30 21:40:29 +00:00
}