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: GR-PEACH_TFTLCD_8bit
Fork of TFTLCD_8bit by
Diff: st7735.cpp
- Revision:
- 12:d0978272a340
- Parent:
- 10:69571adcfad5
- Child:
- 14:8efbe7361dae
--- a/st7735.cpp Tue Dec 11 16:50:09 2012 +0000
+++ b/st7735.cpp Tue Dec 11 18:11:14 2012 +0000
@@ -29,9 +29,10 @@
else _lcd_pin_bl = 0;
}
-void ST7735_LCD::Initialize( orientation_t orientation )
+void ST7735_LCD::Initialize( orientation_t orientation, colordepth_t colors )
{
_orientation = orientation;
+ _colorDepth = colors;
wait_ms( 100 );
_lcd_pin_reset = HIGH;
@@ -148,8 +149,8 @@
WriteCmd( 0xF6 ); // disable ram power save mode
WriteByteData( 0x00 );
- WriteCmd( 0x3A ); // interface pixel format (color mode)
- WriteByteData( 0x05 ); // 65k mode
+ WriteCmd( 0x3A ); // interface pixel format (color mode): 0x05 => RGB16, 0x06 => RGB18
+ WriteByteData( _colorDepth == RGB16 ? 0x05 : 0x06 );
WriteCmd( 0x29 ); // display on
Deactivate();
@@ -216,9 +217,23 @@
WriteCmd( 0x2c );
}
-void ST7735_LCD::SetPixelColor( unsigned short color )
+void ST7735_LCD::SetPixelColor( unsigned int color )
{
- WriteData( color );
+ unsigned char r, g, b;
+ r = ( color >> 16 ) & 0xFF;
+ g = ( color >> 8 ) & 0xFF;
+ b = color & 0xFF;
+ if ( _colorDepth == RGB16 )
+ {
+ unsigned short clr = ( ( ( ( r ) & 0xF8 ) | ( ( g ) >> 5 ) ) << 8 ) | ( ( ( ( g ) & 0x1C ) << 3 ) | ( ( b ) >> 3 ) );
+ WriteData( clr );
+ }
+ else
+ {
+ WriteByteData( r & 0xFC );
+ WriteByteData( g & 0xFC );
+ WriteByteData( b & 0xFC );
+ }
}
void ST7735_LCD::serializeByte( unsigned char data )
