diff --git a/libraries/OneWire/util/OneWire_direct_gpio.h b/libraries/OneWire/util/OneWire_direct_gpio.h index 830241c..34c81e2 100644 --- a/libraries/OneWire/util/OneWire_direct_gpio.h +++ b/libraries/OneWire/util/OneWire_direct_gpio.h @@ -408,8 +408,21 @@ void directWriteHigh(volatile IO_REG_TYPE *base, IO_REG_TYPE pin) #define DIRECT_WRITE_LOW(base, pin) directWriteLow(base, pin) #define DIRECT_WRITE_HIGH(base, pin) directWriteHigh(base, pin) -#elif defined(__riscv) +#elif defined(MIK32V2) +#include "wiring_LL.h" +#define IO_REG_TYPE uint32_t +#define PIN_TO_BASEREG(pin) ((volatile uint32_t*)digitalPinToPort(pin)) +#define PIN_TO_BITMASK(pin) ((uint32_t)digitalPinToBitMask(pin)) +#define IO_REG_BASE_ATTR +#define IO_REG_MASK_ATTR +#define DIRECT_MODE_INPUT(base, mask) (GPIO_INPUT_MODE_PIN((GPIO_TypeDef *)base,mask)) +#define DIRECT_MODE_OUTPUT(base, mask) (GPIO_OUTPUT_MODE_PIN((GPIO_TypeDef *)base,mask)) +#define DIRECT_READ(base, mask) (GPIO_READ_PIN((GPIO_TypeDef *)base,mask)) +#define DIRECT_WRITE_LOW(base, mask) (GPIO_CLEAR_PIN((GPIO_TypeDef *)base,mask)) +#define DIRECT_WRITE_HIGH(base, mask) (GPIO_SET_PIN((GPIO_TypeDef *)base,mask)) + +#elif defined(__riscv) /* * Tested on highfive1 * diff --git a/libraries/OneWire/util/OneWire_direct_regtype.h b/libraries/OneWire/util/OneWire_direct_regtype.h index 8e30813..ad13952 100644 --- a/libraries/OneWire/util/OneWire_direct_regtype.h +++ b/libraries/OneWire/util/OneWire_direct_regtype.h @@ -49,6 +49,9 @@ #include "DigitalInOut.h" #define IO_REG_TYPE mbed::DigitalInOut* +#elif defined(MIK32V2) +#define IO_REG_TYPE uint32_t + #elif defined(__riscv) #define IO_REG_TYPE uint32_t