12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /* mbed Microcontroller Library - SPIHalfDuplex
- * Copyright (c) 2010-2011 ARM Limited. All rights reserved.
- */
- #include "SPIHalfDuplex.h"
-
- #if DEVICE_SPI
-
- #include "spi_api.h"
- #include "pinmap.h"
-
- #define GPIO_MODE 0
- #define SPI_MODE 2
-
- namespace mbed {
-
- SPIHalfDuplex::SPIHalfDuplex(PinName mosi, PinName miso, PinName sclk) : SPI(mosi, miso, sclk) {
- _mosi = mosi;
- _miso = miso;
- _sbits = _bits;
- }
-
- void SPIHalfDuplex::slave_format(int sbits) {
- _sbits = sbits;
- }
-
- int SPIHalfDuplex::write(int value) {
- int t_bits = _bits;
- pin_function(_mosi, SPI_MODE);
- int ret_val = SPI::write(value);
- if (ret_val != value) {
- return -1;
- }
- format(_sbits, _mode);
- pin_function(_mosi, GPIO_MODE);
- ret_val = SPI::write(0x55);
- format(t_bits, _mode);
- pin_function(_mosi, SPI_MODE);
- return ret_val;
- }
-
- } // end namespace mbed
-
- #endif
|