Skip to content

Commit 9797e51

Browse files
committed
Fix ARDUINO_AS_MBED_LIBRARY usage
1 parent be28f3a commit 9797e51

File tree

7 files changed

+35
-7
lines changed

7 files changed

+35
-7
lines changed

.mbedignore

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
cores/arduino/mbed/*
2+
cores/arduino/api/Stream.h
3+
cores/arduino/api/deprecated/Stream.h
4+
cores/arduino/main.cpp
5+
variants/*mbed_config.h
6+
variants/E*
7+
variants/M*
8+
libraries/micro*
9+
libraries/WiFi*

cores/arduino/Arduino.h

+2-5
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,19 @@
2828
#undef F
2929
#endif // F (mbed included after arduino.h)
3030
#define F Mbed_F
31+
#endif // !ARDUINO_AS_MBED_LIBRARY
3132
#include "mbed.h"
3233
#undef PinMode
3334
#undef F
34-
#endif // !ARDUINO_AS_MBED_LIBRARY
3535
#endif //__cplusplus
3636

3737
#if defined(ARDUINO_AS_MBED_LIBRARY)
3838
#define PinMode ArduinoPinMode
39+
#define Arduino_F F
3940
#endif
4041

4142
#include "api/ArduinoAPI.h"
4243

43-
#if defined(ARDUINO_AS_MBED_LIBRARY)
44-
#undef PinMode
45-
#endif
46-
4744
#if defined(__cplusplus)
4845
#if !defined(ARDUINO_AS_MBED_LIBRARY)
4946
using namespace arduino;

cores/arduino/wiring_analog.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ void analogWrite(PinName pin, int val)
4747
pwm = new mbed::PwmOut(pin);
4848
digitalPinToPwmObj(pin) = pwm;
4949
}
50+
#else
51+
// attention: this leaks badly
52+
mbed::PwmOut* pwm = new mbed::PwmOut(digitalPinToPinName(pin));
5053
#endif
5154
pwm->write(percent);
5255
}
@@ -60,8 +63,8 @@ void analogWrite(pin_size_t pin, int val)
6063
pwm = new mbed::PwmOut(digitalPinToPinName(pin));
6164
digitalPinToPwmObj(pin) = pwm;
6265
}
63-
#endif
6466
pwm->write(percent);
67+
#endif
6568
}
6669

6770
void analogWriteResolution(int bits)

libraries/SPI/SPI.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,13 @@ void arduino::MbedSPI::end() {
5757
}
5858
}
5959

60+
#if !defined(ARDUINO_AS_MBED_LIBRARY)
61+
6062
#if DEVICE_SPI > 0
6163
arduino::MbedSPI SPI(SPI_MISO, SPI_MOSI, SPI_SCK);
6264
#endif
6365
#if DEVICE_SPI > 1
6466
arduino::MbedSPI SPI1(SPI_MISO1, SPI_MOSI1, SPI_SCK1);
67+
#endif
68+
6569
#endif

libraries/SPI/SPI.h

+8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
#pragma once
22

33
#include "Arduino.h"
4+
#if !defined(ARDUINO_AS_MBED_LIBRARY)
45
#include "drivers/SPIMaster.h"
6+
#else
7+
#include "drivers/SPI.h"
8+
#endif
59

610
namespace arduino {
711

@@ -36,9 +40,13 @@ class MbedSPI : public SPIClass
3640

3741
}
3842

43+
#if !defined(ARDUINO_AS_MBED_LIBRARY)
44+
3945
#if DEVICE_SPI > 0
4046
extern arduino::MbedSPI SPI;
4147
#endif
4248
#if DEVICE_SPI > 1
4349
extern arduino::MbedSPI SPI1;
4450
#endif
51+
52+
#endif

mbed_lib.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"name": "arduino",
3+
"macros": [
4+
"ARDUINO_AS_MBED_LIBRARY",
5+
"USE_ARDUINO_PINOUT"
6+
]
7+
}

variants/ARDUINO_NANO33BLE/variant.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ void initVariant() {
8585

8686
#ifdef SERIAL_CDC
8787
#include "CDC.h"
88-
CDC SerialUSB;
88+
arduino::CDC SerialUSB;
8989

9090
static void utox8(uint32_t val, uint8_t* s) {
9191
for (int i = 0; i < 16; i=i+2) {

0 commit comments

Comments
 (0)