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.
Fork of UniGraphic by
Diff: Protocols/SPI8.cpp
- Revision:
- 1:ff019d22b275
- Parent:
- 0:75ec1b3cde17
- Child:
- 4:12ba0ecc2c1f
diff -r 75ec1b3cde17 -r ff019d22b275 Protocols/SPI8.cpp --- a/Protocols/SPI8.cpp Thu Feb 12 22:22:47 2015 +0000 +++ b/Protocols/SPI8.cpp Fri Feb 13 15:25:10 2015 +0000 @@ -2,7 +2,7 @@ //#define USE_CS -SPI8::SPI8(PinName mosi, PinName miso, PinName sclk, PinName CS, PinName reset, PinName DC) +SPI8::SPI8(int Hz, PinName mosi, PinName miso, PinName sclk, PinName CS, PinName reset, PinName DC) : _CS(CS), _spi(mosi, miso, sclk), _reset(reset), _DC(DC) { _reset = 1; @@ -10,11 +10,11 @@ _CS=1; _spi.format(8,0); // 8 bit spi mode 0 // _spi.frequency(12000000); // 10 Mhz SPI clock, 12mhz for F411 - _spi.frequency(10000000); + _spi.frequency(Hz); hw_reset(); } -void SPI8::wr_cmd(unsigned char cmd) +void SPI8::wr_cmd8(unsigned char cmd) { #ifdef USE_CS _CS = 0; @@ -25,18 +25,18 @@ _CS = 1; #endif } -void SPI8::wr_data8(unsigned char data8) +void SPI8::wr_data8(unsigned char data) { #ifdef USE_CS _CS = 0; #endif _DC.write(1); // 1=data - _spi.write(data8); // write 8bit + _spi.write(data); // write 8bit #ifdef USE_CS _CS = 1; #endif } -void SPI8::wr_data8(unsigned char data8, unsigned int count) +void SPI8::wr_data8(unsigned char data, unsigned int count) { #ifdef USE_CS _CS = 0; @@ -44,14 +44,14 @@ _DC.write(1); // 1=data while(count) { - _spi.write(data8); // write 8bit + _spi.write(data); // write 8bit count--; } #ifdef USE_CS _CS = 1; #endif } -void SPI8::wr_data8buf(unsigned char* data8, unsigned int lenght) +void SPI8::wr_data8buf(unsigned char* data, unsigned int lenght) { #ifdef USE_CS _CS = 0; @@ -59,8 +59,77 @@ _DC.write(1); // 1=data while(lenght) { - _spi.write(*data8++); // write 8bit - // data8++; + _spi.write(*data++); // write 8bit + // data++; + lenght--; + } +#ifdef USE_CS + _CS = 1; +#endif +} +void SPI8::wr_cmd16(unsigned short cmd) +{ +#ifdef USE_CS + _CS = 0; +#endif + _DC.write(0); // 0=cmd + _spi.write(cmd>>8); // write 8bit + _spi.write(cmd&0xFF); // write 8bit +#ifdef USE_CS + _CS = 1; +#endif +} +void SPI8::wr_data16(unsigned short data) +{ +#ifdef USE_CS + _CS = 0; +#endif + _DC.write(1); // 1=data + _spi.write(data>>8); // write 8bit + _spi.write(data&0xFF); // write 8bit +#ifdef USE_CS + _CS = 1; +#endif +} +void SPI8::wr_data16(unsigned short data, unsigned int count) +{ +#ifdef USE_CS + _CS = 0; +#endif + _DC.write(1); // 1=data + if((data>>8)==(data&0xFF)) + { + count<<=1; + while(count) + { + _spi.write(data); // write 8bit + count--; + } + } + else + { + while(count) + { + _spi.write(data>>8); // write 8bit + _spi.write(data&0xFF); // write 8bit + count--; + } + } +#ifdef USE_CS + _CS = 1; +#endif +} +void SPI8::wr_data16buf(unsigned short* data, unsigned int lenght) +{ +#ifdef USE_CS + _CS = 0; +#endif + _DC.write(1); // 1=data + while(lenght) + { + _spi.write((*data)>>8); // write 8bit + _spi.write((*data)&0xFF); // write 8bit + data++; lenght--; } #ifdef USE_CS