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:
- 14:8efbe7361dae
- Parent:
- 12:d0978272a340
- Child:
- 15:af3cd35886fb
diff -r 5ceeba86bbe4 -r 8efbe7361dae st7735.cpp
--- a/st7735.cpp Tue Dec 11 20:02:48 2012 +0000
+++ b/st7735.cpp Tue Dec 11 20:52:22 2012 +0000
@@ -59,10 +59,12 @@
WriteByteData( 0x01 );
WriteByteData( 0x2C );
WriteByteData( 0x2D );
+
WriteCmd( 0xB2 ); // frame control 2
WriteByteData( 0x01 );
WriteByteData( 0x2C );
WriteByteData( 0x2D );
+
WriteCmd( 0xB3 ); // frame control 3
WriteByteData( 0x01 );
WriteByteData( 0x2C );
@@ -72,21 +74,26 @@
WriteByteData( 0x2D );
WriteCmd( 0xB4 ); // column inversion
- WriteByteData( 0x07 );
+ //WriteByteData( 0x07 );
+ WriteByteData( 0x00 );
// ST7735R Power Sequence
WriteCmd( 0xC0 ); // power control 1
WriteByteData( 0xA2 );
WriteByteData( 0x02 );
WriteByteData( 0x84 );
+
WriteCmd( 0xC1 ); // power control 2
WriteByteData( 0xC5 );
+
WriteCmd( 0xC2 ); // power control 3
WriteByteData( 0x0A );
WriteByteData( 0x00 );
+
WriteCmd( 0xC3 ); // power control 4
WriteByteData( 0x8A );
WriteByteData( 0x2A );
+
WriteCmd( 0xC4 ); // power control 5
WriteByteData( 0x8A );
WriteByteData( 0xEE );
@@ -94,9 +101,6 @@
WriteCmd( 0xC5 ); // voltage control 1
WriteByteData( 0x0E );
- WriteCmd( 0x36 ); //MX, MY, RGB mode
- WriteByteData( 0xC8 );
-
// ST7735R Gamma Sequence
WriteCmd( 0xE0 ); // gamma positive
WriteByteData( 0x0F );
@@ -115,6 +119,7 @@
WriteByteData( 0x07 );
WriteByteData( 0x02 );
WriteByteData( 0x10 );
+
WriteCmd( 0xE1 ); // gamma negative
WriteByteData( 0x0F );
WriteByteData( 0x1B );
@@ -138,6 +143,7 @@
WriteByteData( 0x00 );
WriteByteData( 0x00 );
WriteByteData( 0x7F );
+
WriteCmd( 0x2B ); // set row address
WriteByteData( 0x00 );
WriteByteData( 0x00 );
@@ -146,11 +152,23 @@
WriteCmd( 0xF0 ); // enable extensions command
WriteByteData( 0x01 );
+
WriteCmd( 0xF6 ); // disable ram power save mode
WriteByteData( 0x00 );
WriteCmd( 0x3A ); // interface pixel format (color mode): 0x05 => RGB16, 0x06 => RGB18
WriteByteData( _colorDepth == RGB16 ? 0x05 : 0x06 );
+
+ WriteCmd( 0x36 ); //MX, MY, RGB mode
+ switch ( _orientation )
+ {
+ case LANDSCAPE: WriteByteData( 0xB8 ); break;
+ case PORTRAIT_REV: WriteByteData( 0xDC ); break;
+ case LANDSCAPE_REV: WriteByteData( 0x6C ); break;
+ case PORTRAIT:
+ default: WriteByteData( 0x08 ); break;
+ }
+
WriteCmd( 0x29 ); // display on
Deactivate();
@@ -201,15 +219,6 @@
void ST7735_LCD::SetXY( uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2 )
{
- if ( _orientation == LANDSCAPE )
- {
- swap( uint16_t, x1, y1 )
- swap( uint16_t, x2, y2 )
- y1 = _disp_height - y1;
- y2 = _disp_height - y2;
- swap( uint16_t, y1, y2 )
- }
-
WriteCmdData( 0x2a, x1 );
WriteData( x2 );
WriteCmdData( 0x2b, y1 );
