diff --git a/ArduCAM/ArduCAM.cpp b/ArduCAM/ArduCAM.cpp index c88c33d1..6c060f4b 100644 --- a/ArduCAM/ArduCAM.cpp +++ b/ArduCAM/ArduCAM.cpp @@ -130,7 +130,7 @@ ArduCAM::ArduCAM(byte model ,int CS) B_CS = CS; } #else - #if (defined(ESP8266)||defined(ESP32)||defined(TEENSYDUINO) ||defined(NRF52840_XXAA)) + #if (defined(ESP8266) || defined(ESP32) || defined(TEENSYDUINO) || defined(NRF52840_XXAA) || defined(ARDUINO_ARCH_MBED)) B_CS = CS; #else P_CS = portOutputRegister(digitalPinToPort(CS)); diff --git a/ArduCAM/ArduCAM.h b/ArduCAM/ArduCAM.h index 0c6059d8..7a935137 100644 --- a/ArduCAM/ArduCAM.h +++ b/ArduCAM/ArduCAM.h @@ -306,6 +306,28 @@ #define regsize uint32_t #endif +#if defined(ARDUINO_ARCH_MBED) +#define cbi(reg, bitmask) digitalWrite(bitmask, LOW) +#define sbi(reg, bitmask) digitalWrite(bitmask, HIGH) +#define pulse_high(reg, bitmask) \ + sbi(reg, bitmask); \ + cbi(reg, bitmask); +#define pulse_low(reg, bitmask) \ + cbi(reg, bitmask); \ + sbi(reg, bitmask); + +#define cport(port, data) port &= data +#define sport(port, data) port |= data + +// Avoid conflicts with what is defined in STL. +// Not used in this library anyway +// #define swap(type, i, j) {type t = i; i = j; j = t;} + +#define fontbyte(x) cfont.font[x] + +#define regtype volatile uint32_t +#define regsize uint32_t +#endif /****************************************************/ /* Sensor related definition */