Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 1162086

Browse files
committedApr 16, 2021
Provide PinName overloads for Wire and SPI constructors
1 parent f5ddfa8 commit 1162086

File tree

4 files changed

+19
-9
lines changed

4 files changed

+19
-9
lines changed
 

‎libraries/SPI/SPI.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,13 @@ struct _mbed_spi {
3333
};
3434

3535

36-
arduino::MbedSPI::MbedSPI(int miso, int mosi, int sck) : _miso(miso), _mosi(mosi), _sck(sck) {
36+
arduino::MbedSPI::MbedSPI(int miso, int mosi, int sck) :
37+
_miso(digitalPinToPinName(miso)), _mosi(digitalPinToPinName(mosi)), _sck(digitalPinToPinName(sck)) {
38+
39+
}
40+
41+
arduino::MbedSPI::MbedSPI(PinName miso, PinName mosi, PinName sck) : _miso(miso), _mosi(mosi), _sck(sck) {
42+
3743
}
3844

3945
uint8_t arduino::MbedSPI::transfer(uint8_t data) {
@@ -95,7 +101,7 @@ void arduino::MbedSPI::begin() {
95101
dev->obj = NULL;
96102
}
97103
if (dev->obj == NULL) {
98-
dev->obj = new mbed::SPI((PinName)_mosi, (PinName)_miso, (PinName)_sck);
104+
dev->obj = new mbed::SPI(_mosi, _miso, (PinName)_sck);
99105
}
100106
}
101107

‎libraries/SPI/SPI.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class MbedSPI : public SPIClass
2929
{
3030
public:
3131
MbedSPI(int miso, int mosi, int sck);
32+
MbedSPI(PinName miso, PinName mosi, PinName sck);
3233
virtual uint8_t transfer(uint8_t data);
3334
virtual uint16_t transfer16(uint16_t data);
3435
virtual void transfer(void *buf, size_t count);
@@ -49,9 +50,9 @@ class MbedSPI : public SPIClass
4950
private:
5051
SPISettings settings = SPISettings(0, MSBFIRST, SPI_MODE0);
5152
_mbed_spi* dev = NULL;
52-
int _miso;
53-
int _mosi;
54-
int _sck;
53+
PinName _miso;
54+
PinName _mosi;
55+
PinName _sck;
5556
};
5657

5758
}

‎libraries/Wire/Wire.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,12 @@
2323
#include "Wire.h"
2424
#include "pinDefinitions.h"
2525

26-
arduino::MbedI2C::MbedI2C(int sda, int scl) : _sda(sda), _scl(scl), usedTxBuffer(0) {}
26+
arduino::MbedI2C::MbedI2C(int sda, int scl) : _sda(digitalPinToPinName(sda)), _scl(digitalPinToPinName(scl)), usedTxBuffer(0) {}
27+
28+
arduino::MbedI2C::MbedI2C(PinName sda, PinName scl) : _sda(sda), _scl(scl), usedTxBuffer(0) {}
2729

2830
void arduino::MbedI2C::begin() {
29-
master = new mbed::I2C((PinName)_sda, (PinName)_scl);
31+
master = new mbed::I2C(_sda, _scl);
3032
}
3133

3234
void arduino::MbedI2C::begin(uint8_t slaveAddr) {

‎libraries/Wire/Wire.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class MbedI2C : public HardwareI2C
3535
{
3636
public:
3737
MbedI2C(int sda, int scl);
38+
MbedI2C(PinName sda, PinName scl);
3839
virtual void begin();
3940
#ifndef DEVICE_I2CSLAVE
4041
virtual void __attribute__ ((error("I2C Slave mode is not supported"))) begin(uint8_t address);
@@ -72,8 +73,8 @@ class MbedI2C : public HardwareI2C
7273
mbed::I2CSlave* slave = NULL;
7374
#endif
7475
mbed::I2C* master = NULL;
75-
int _sda;
76-
int _scl;
76+
PinName _sda;
77+
PinName _scl;
7778
int _address;
7879
RingBufferN<256> rxBuffer;
7980
uint8_t txBuffer[256];

0 commit comments

Comments
 (0)
Please sign in to comment.