#pragma once #include #include #include BEGIN_CS_NAMESPACE struct DirectPinRead { const volatile uint32_t *in_reg; uint32_t bitmask; bool read() const { return *in_reg & bitmask; } }; inline DirectPinRead direct_pin_read(ArduinoPin_t pin) { return {&sio_hw->gpio_in, uint32_t(1) << pin}; } END_CS_NAMESPACE