Support ESP32 critical sections

This commit is contained in:
PaulStoffregen
2018-01-21 05:56:41 -08:00
parent f54f2a972b
commit ac0ea9a7fc
2 changed files with 8 additions and 0 deletions
+4
View File
@@ -189,5 +189,9 @@ class OneWire
#undef DIRECT_MODE_OUTPUT
#undef DIRECT_WRITE_LOW
#undef DIRECT_WRITE_HIGH
#ifdef ARDUINO_ARCH_ESP32
#undef noInterrupts()
#undef interrupts()
#endif
#endif
+4
View File
@@ -197,6 +197,10 @@ void directModeOutput(IO_REG_TYPE pin)
#define DIRECT_WRITE_HIGH(base, pin) directWriteHigh(pin)
#define DIRECT_MODE_INPUT(base, pin) directModeInput(pin)
#define DIRECT_MODE_OUTPUT(base, pin) directModeOutput(pin)
// https://github.com/PaulStoffregen/OneWire/pull/47
// https://github.com/stickbreaker/OneWire/commit/6eb7fc1c11a15b6ac8c60e5671cf36eb6829f82c
#define noInterrupts() {portMUX_TYPE mux = portMUX_INITIALIZER_UNLOCKED;portENTER_CRITICAL(&mux)
#define interrupts() portEXIT_CRITICAL(&mux);}
#warning "ESP32 OneWire testing"
#elif defined(__SAMD21G18A__)