| @@ -19,11 +19,19 @@ | |||
| #define PIN_TO_BITMASK(pin) (digitalPinToBitMask(pin)) | |||
| #define IO_REG_TYPE uint8_t | |||
| #define IO_REG_ASM asm("r30") | |||
| #if defined(__AVR_ATmega4809__) | |||
| #define DIRECT_READ(base, mask) (((*(base)) & (mask)) ? 1 : 0) | |||
| #define DIRECT_MODE_INPUT(base, mask) ((*((base)-8)) &= ~(mask)) | |||
| #define DIRECT_MODE_OUTPUT(base, mask) ((*((base)-8)) |= (mask)) | |||
| #define DIRECT_WRITE_LOW(base, mask) ((*((base)-4)) &= ~(mask)) | |||
| #define DIRECT_WRITE_HIGH(base, mask) ((*((base)-4)) |= (mask)) | |||
| #else | |||
| #define DIRECT_READ(base, mask) (((*(base)) & (mask)) ? 1 : 0) | |||
| #define DIRECT_MODE_INPUT(base, mask) ((*((base)+1)) &= ~(mask)) | |||
| #define DIRECT_MODE_OUTPUT(base, mask) ((*((base)+1)) |= (mask)) | |||
| #define DIRECT_WRITE_LOW(base, mask) ((*((base)+2)) &= ~(mask)) | |||
| #define DIRECT_WRITE_HIGH(base, mask) ((*((base)+2)) |= (mask)) | |||
| #endif | |||
| #elif defined(__MK20DX128__) || defined(__MK20DX256__) || defined(__MK66FX1M0__) || defined(__MK64FX512__) | |||
| #define PIN_TO_BASEREG(pin) (portOutputRegister(pin)) | |||