Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: DirectSPI-test wave_player_super_lite
Revision 4:f63f07d07d5a, committed 2017-02-28
- Comitter:
- mimi3
- Date:
- Tue Feb 28 22:08:32 2017 +0900
- Parent:
- 3:63cc20b0895b
- Commit message:
- update
Changed in this revision
| DirectSPI.cpp | Show annotated file Show diff for this revision Revisions of this file |
| DirectSPI.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/DirectSPI.cpp Tue Feb 28 22:00:46 2017 +0900
+++ b/DirectSPI.cpp Tue Feb 28 22:08:32 2017 +0900
@@ -18,7 +18,7 @@
#endif
DirectSPI::DirectSPI(PinName mosi, PinName miso, PinName sclk) : SPI(mosi, miso, sclk) {
- spi = _spi.spi.handle.Instance;
+ spi = spi_get_id(mosi, miso, sclk, NC);
#if TODO
spiSend = is16bit ? &DirectSPI::spiSend16 : &DirectSPI::spiSend8;
#endif
@@ -52,3 +52,15 @@
return SPIBUF16(spi);
}
+SPI_TypeDef *DirectSPI::spi_get_id( PinName mosi, PinName miso, PinName sclk, PinName ssel) {
+ // Determine the SPI to use
+ SPIName spi_mosi = (SPIName)pinmap_peripheral(mosi, PinMap_SPI_MOSI);
+ SPIName spi_miso = (SPIName)pinmap_peripheral(miso, PinMap_SPI_MISO);
+ SPIName spi_sclk = (SPIName)pinmap_peripheral(sclk, PinMap_SPI_SCLK);
+ SPIName spi_ssel = (SPIName)pinmap_peripheral(ssel, PinMap_SPI_SSEL);
+
+ SPIName spi_data = (SPIName)pinmap_merge(spi_mosi, spi_miso);
+ SPIName spi_cntl = (SPIName)pinmap_merge(spi_sclk, spi_ssel);
+
+ return (SPI_TypeDef *) ( (SPIName)pinmap_merge(spi_data, spi_cntl) );
+}
--- a/DirectSPI.h Tue Feb 28 22:00:46 2017 +0900
+++ b/DirectSPI.h Tue Feb 28 22:08:32 2017 +0900
@@ -12,6 +12,7 @@
uint16_t directWrite8(uint16_t data);
uint16_t directWrite16(uint16_t data);
uint16_t directWrite(uint16_t data);
+ SPI_TypeDef *spi_get_id( PinName mosi, PinName miso, PinName sclk, PinName ssel);
void operator = (uint8_t d8){
volatile uint16_t res;
res = directWrite8( d8 );