LA: Adding some "Ex" features to DmTftBase
Diff: DmTftIli9341.cpp
- Revision:
- 14:2db7065edbec
- Parent:
- 0:d6ff5fa503e8
- Child:
- 15:a9fb1a45f029
--- a/DmTftIli9341.cpp Fri Sep 18 14:59:13 2015 +0000 +++ b/DmTftIli9341.cpp Mon Oct 12 08:35:35 2015 +0000 @@ -10,31 +10,28 @@ NO RESPONSIBILITY OR LIABILITY FOR THE USE OF THE SOFTWARE. ********************************************************************************************/ +//Tested on NUCLEO-F401RE, LPCXpresso11U68, LPCXpresso824-MAX platform. + #include "DmTftIli9341.h" #if defined (DM_TOOLCHAIN_ARDUINO) DmTftIli9341::DmTftIli9341(uint8_t cs, uint8_t dc) +:DmTftBase(240, 320) #elif defined (DM_TOOLCHAIN_MBED) -DmTftIli9341::DmTftIli9341(uint8_t cs, uint8_t dc, uint8_t miso, uint8_t mosi, uint8_t clk) +DmTftIli9341::DmTftIli9341(PinName cs, PinName dc, PinName mosi, PinName miso, PinName clk) +:DmTftBase(240, 320), spi(mosi, miso, clk) #endif -: DmTftBase(240, 320){ +{ _cs = cs; _dc = dc; -#if defined (DM_TOOLCHAIN_MBED) - _miso = miso; - _mosi = mosi; - _clk = clk; -#endif } DmTftIli9341::~DmTftIli9341() { #if defined (DM_TOOLCHAIN_MBED) delete _pinCS; delete _pinDC; -delete _spi; _pinCS = NULL; _pinDC = NULL; -_spi = NULL; #endif } @@ -44,34 +41,27 @@ SPDR = data; // SPI Data Register while(!(SPSR & _BV(SPIF))); // SPI Status Register Wait for transmission to finish #elif defined (DM_TOOLCHAIN_MBED) - _spi->write(data); + spi.write(data); #endif } void DmTftIli9341::sendCommand(uint8_t index) { - // cbi(_pinCS, _bitmaskCS); cbi(_pinDC, _bitmaskDC); - writeBus(index); - // sbi(_pinCS, _bitmaskCS); } void DmTftIli9341::send8BitData(uint8_t data) { - //cbi(_pinCS, _bitmaskCS); sbi(_pinDC, _bitmaskDC); writeBus(data); - //sbi(_pinCS, _bitmaskCS); } void DmTftIli9341::sendData(uint16_t data) { uint8_t dh = data>>8; uint8_t dl = data&0xff; - //cbi(_pinCS, _bitmaskCS); sbi(_pinDC, _bitmaskDC); writeBus(dh); writeBus(dl); - //sbi(_pinCS, _bitmaskCS); } void DmTftIli9341::setAddress(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1) { @@ -104,13 +94,12 @@ SPI.setDataMode(SPI_MODE0); _spiSettings = SPCR; #elif defined (DM_TOOLCHAIN_MBED) - _pinCS = new DigitalOut((PinName)_cs); - _pinDC = new DigitalOut((PinName)_dc); + _pinCS = new DigitalOut(_cs); + _pinDC = new DigitalOut(_dc); sbi(_pinCS, _bitmaskCS); - - _spi = new SPI((PinName)_mosi, (PinName)_miso, (PinName)_clk); - _spi->format(8,0); - _spi->frequency(8000000); // Max SPI speed for display is 10 and for 17 for LPC15xx + + spi.format(8,0); + spi.frequency(8000000); // Max SPI speed for display is 10 and for 17 for LPC15xx #endif cbi(_pinCS, _bitmaskCS); delay(135); // This much delay needed??