Browse Source

Fix ESP32 TOGGLE() with I2S expander (#13743)

Kajetan Rzepecki 6 years ago
parent
commit
d83a7924e6

+ 1
- 1
Marlin/src/HAL/HAL_ESP32/fastio_ESP32.h View File

37
 #define _PULLUP(IO, v)          pinMode(IO, v ? INPUT_PULLUP : INPUT)
37
 #define _PULLUP(IO, v)          pinMode(IO, v ? INPUT_PULLUP : INPUT)
38
 
38
 
39
 // Read a pin wrapper
39
 // Read a pin wrapper
40
-#define READ(IO)                digitalRead(IO)
40
+#define READ(IO)                (TEST(IO, 7) ? i2s_state(IO & 0x7F) : digitalRead(IO))
41
 
41
 
42
 // Write to a pin wrapper
42
 // Write to a pin wrapper
43
 #define WRITE(IO, v)            (TEST(IO, 7) ? i2s_write(IO & 0x7F, v) : digitalWrite(IO, v))
43
 #define WRITE(IO, v)            (TEST(IO, 7) ? i2s_write(IO & 0x7F, v) : digitalWrite(IO, v))

+ 4
- 0
Marlin/src/HAL/HAL_ESP32/i2s.cpp View File

315
   SET_BIT_TO(i2s_port_data, pin, val);
315
   SET_BIT_TO(i2s_port_data, pin, val);
316
 }
316
 }
317
 
317
 
318
+uint8_t i2s_state(uint8_t pin) {
319
+  return TEST(i2s_port_data, pin);
320
+}
321
+
318
 void i2s_push_sample() {
322
 void i2s_push_sample() {
319
   dma.current[dma.rw_pos++] = i2s_port_data;
323
   dma.current[dma.rw_pos++] = i2s_port_data;
320
 }
324
 }

+ 2
- 0
Marlin/src/HAL/HAL_ESP32/i2s.h View File

26
 
26
 
27
 int i2s_init();
27
 int i2s_init();
28
 
28
 
29
+uint8_t i2s_state(uint8_t pin);
30
+
29
 void i2s_write(uint8_t pin, uint8_t val);
31
 void i2s_write(uint8_t pin, uint8_t val);
30
 
32
 
31
 void i2s_push_sample();
33
 void i2s_push_sample();

Loading…
Cancel
Save