Skip to content

Commit d041968

Browse files
committed
Streamline SPI API.
1 parent a9330ec commit d041968

File tree

3 files changed

+21
-7
lines changed

3 files changed

+21
-7
lines changed

examples/ts_spi/ts_spi.ino

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ void bmp388_thread_func();
2525
* GLOBAL VARIABLES
2626
**************************************************************************************/
2727

28-
SpiBusDevice bmp388 = BusDeviceCreator.create(SPI, SPISettings{1000000, MSBFIRST, SPI_MODE0}, BMP388_CS_PIN);
28+
SpiBusDevice bmp388 = BusDeviceCreator.create(SPI, BMP388_CS_PIN, 1000000, MSBFIRST, SPI_MODE0);
2929

3030
static char thread_name[NUM_THREADS][32];
3131

src/BusDeviceCreator.cpp

+17-4
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,27 @@ namespace impl
3333
* PUBLIC MEMBER FUNCTIONS
3434
**************************************************************************************/
3535

36-
SpiBusDevice BusDeviceCreator::create(arduino::SPIClass & spi, SPISettings const & spi_settings, SpiBusDeviceConfig::SpiSelectFunc spi_select, SpiBusDeviceConfig::SpiDeselectFunc spi_deselect, byte const fill_symbol)
36+
SpiBusDevice create(arduino::SPIClass & spi, int const cs_pin, SPISettings const & spi_settings, byte const fill_symbol)
3737
{
38-
return SpiBusDevice(SpiBusDeviceConfig{spi, spi_settings, spi_select, spi_deselect, fill_symbol});
38+
return SpiBusDevice(SpiBusDeviceConfig{spi,
39+
spi_settings,
40+
cs_pin,
41+
fill_symbol
42+
});
3943
}
4044

41-
SpiBusDevice BusDeviceCreator::create(arduino::SPIClass & spi, SPISettings const & spi_settings, int const cs_pin, byte const fill_symbol)
45+
SpiBusDevice BusDeviceCreator::create(arduino::SPIClass & spi, int const cs_pin, uint32_t const spi_clock, BitOrder const spi_bit_order, SPIMode const spi_bit_mode, byte const fill_symbol)
4246
{
43-
return SpiBusDevice(SpiBusDeviceConfig{spi, spi_settings, cs_pin, fill_symbol});
47+
return SpiBusDevice(SpiBusDeviceConfig{spi,
48+
SPISettings(spi_clock, spi_bit_order, spi_bit_mode),
49+
cs_pin,
50+
fill_symbol
51+
});
52+
}
53+
54+
SpiBusDevice BusDeviceCreator::create(arduino::SPIClass & spi, SpiBusDeviceConfig::SpiSelectFunc spi_select, SpiBusDeviceConfig::SpiDeselectFunc spi_deselect, SPISettings const & spi_settings, byte const fill_symbol)
55+
{
56+
return SpiBusDevice(SpiBusDeviceConfig{spi, spi_settings, spi_select, spi_deselect, fill_symbol});
4457
}
4558

4659
WireBusDevice BusDeviceCreator::create(arduino::HardwareI2C & wire, byte const slave_addr)

src/BusDeviceCreator.h

+3-2
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@ class BusDeviceCreator
3737
{
3838
public:
3939

40-
SpiBusDevice create(arduino::SPIClass & spi, SPISettings const & spi_settings, SpiBusDeviceConfig::SpiSelectFunc spi_select, SpiBusDeviceConfig::SpiDeselectFunc spi_deselect, byte const fill_symbol = 0xFF);
41-
SpiBusDevice create(arduino::SPIClass & spi, SPISettings const & spi_settings, int const cs_pin, byte const fill_symbol = 0xFF);
40+
SpiBusDevice create(arduino::SPIClass & spi, int const cs_pin, SPISettings const & spi_settings, byte const fill_symbol = 0xFF);
41+
SpiBusDevice create(arduino::SPIClass & spi, int const cs_pin, uint32_t const spi_clock, BitOrder const spi_bit_order, SPIMode const spi_bit_mode, byte const fill_symbol = 0xFF);
42+
SpiBusDevice create(arduino::SPIClass & spi, SpiBusDeviceConfig::SpiSelectFunc spi_select, SpiBusDeviceConfig::SpiDeselectFunc spi_deselect, SPISettings const & spi_settings, byte const fill_symbol = 0xFF);
4243

4344
WireBusDevice create(arduino::HardwareI2C & wire, byte const slave_addr);
4445
WireBusDevice create(arduino::HardwareI2C & wire, byte const slave_addr, bool const restart);

0 commit comments

Comments
 (0)