from whaleshark

This commit is contained in:
equant 2021-07-27 14:35:17 -07:00
parent 1899aafb07
commit 7b3cf47076

View File

@ -11,9 +11,28 @@
//String http_header;
/* OUTPUTS (numbers mean GPIO port) */
#define DATA_0_PIN 12
#define D0R 12
#define D1R 13
#define D2R 14
#define D3R 15
#define D4R 18
#define D5R 19
#define D6R 21
#define D7R 22
#define DEVSEL_PIN 35
byte data_pins[] = {D0R, D1R, D2R, D3R, D4R, D5R, D6R, D7R};
#define DATA_BUS_SIZE 8
#define A0R 23
#define A1R 25
#define A2R 26
#define A3R 27
byte address_pins[] = {A0R, A1R, A2R, A3R};
#define ADDRESS_BUS_SIZE 4
//#define DEVSEL_PIN 35
#define DEVSEL_PIN 5
unsigned int data_byte = 0;
@ -30,6 +49,7 @@ void IRAM_ATTR isrDEVSEL(void) {
raw_register_read = REG_READ(GPIO_IN_REG);
raw_register1_read = REG_READ(GPIO_IN1_REG);
isr_handled = true;
Serial.println("^INTERUPT!");
}
/*################################################
@ -37,37 +57,72 @@ void IRAM_ATTR isrDEVSEL(void) {
################################################*/
void setup() {
Serial.begin(115200);
for (int i=0; i < 8; i++) {
pinMode(DATA_0_PIN + i, INPUT);
}
//for (int i=0; i < 8; i++) {
//pinMode(DATA_0_PIN + i, INPUT);
//}
pinMode(A0R, OUTPUT); digitalWrite(A0R, LOW);
pinMode(A1R, OUTPUT); digitalWrite(A1R, LOW);
pinMode(A2R, OUTPUT); digitalWrite(A2R, LOW);
pinMode(A3R, OUTPUT); digitalWrite(A3R, LOW);
pinMode(D0R, INPUT);
pinMode(D1R, INPUT);
pinMode(D2R, INPUT);
pinMode(D3R, INPUT);
pinMode(D4R, INPUT);
pinMode(D5R, INPUT);
pinMode(D6R, INPUT);
pinMode(D7R, INPUT);
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);
Serial.begin(115200);
Serial.println("");
Serial.println("Starting.");
Serial.println("Starting...");
//attachInterrupt(DEVSEL_PIN, isrDEVSEL, LOW);
attachInterrupt(DEVSEL_PIN, isrDEVSEL, CHANGE);
//attachInterrupt(DEVSEL_PIN, isrDEVSEL, FALLING);
//attachInterrupt(DEVSEL_PIN, isrDEVSEL, RISING);
//attachInterrupt(DEVSEL_PIN, isrDEVSEL, FALLING);
}
void set_address(int address) {
Serial.print("Setting address (");
Serial.print(address);
Serial.print("): ");
for (byte i=0; i<ADDRESS_BUS_SIZE; i++) {
byte state = bitRead(address, i);
digitalWrite(address_pins[i], state);
Serial.print(state);
}
Serial.println();
}
unsigned long read_data() {
unsigned long data_bus_read = 0;
Serial.print("Reading data: ");
for (byte i=0; i<DATA_BUS_SIZE; i++) {
data_bus_read << 1;
byte pin_state = digitalRead(data_pins[i]);
Serial.print(pin_state);
data_bus_read += pin_state;
}
Serial.print(data_bus_read);
Serial.println();
delay(10);
raw_register_read = REG_READ(GPIO_IN_REG);
//raw_register1_read = REG_READ(GPIO_IN1_REG);
Serial.print(raw_register_read, BIN);
//Serial.print(" : ");
//Serial.println(raw_register1_read, BIN);
Serial.println();
return data_bus_read;
}
/*################################################
# Main #
################################################*/
const long loopTimeInterval = 2500; // interval at which to blink (milliseconds)
const long loopTimeInterval = 5500; // interval at which to blink (milliseconds)
int devsel_state = 0;
unsigned long lastLoopMillis = 0;
@ -87,17 +142,22 @@ void loop() {
Serial.println(raw_register1_read, BIN);
}
if (millis() - lastLoopMillis > loopTimeInterval) {
Serial.println("--LOOP READ--");
//if (millis() - lastLoopMillis > loopTimeInterval) {
//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;
lastLoopMillis = millis();
//raw_register_read = REG_READ(GPIO_IN_REG);
//raw_register1_read = REG_READ(GPIO_IN1_REG);
//isr_handled = true;
//lastLoopMillis = millis();
//}
delay(5555);
for (int i=0; i < ADDRESS_BUS_SIZE; i++) {
set_address(i);
long foo = read_data();
delay(100);
}
}