81 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
|   // This is the command sequence that rotates the ST7789 driver coordinate frame
 | |
| 
 | |
|   writecommand(TFT_MADCTL);
 | |
|   rotation = m % 4;
 | |
|   switch (rotation) {
 | |
|     case 0: // Portrait
 | |
| #ifdef CGRAM_OFFSET
 | |
|       if (_init_width == 135)
 | |
|       {
 | |
|         colstart = 52;
 | |
|         rowstart = 40;
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         colstart = 0;
 | |
|         rowstart = 0;
 | |
|       }
 | |
| #endif
 | |
|       writedata(TFT_MAD_COLOR_ORDER);
 | |
| 
 | |
|       _width  = _init_width;
 | |
|       _height = _init_height;
 | |
|       break;
 | |
| 
 | |
|     case 1: // Landscape (Portrait + 90)
 | |
| #ifdef CGRAM_OFFSET
 | |
|       if (_init_width == 135)
 | |
|       {
 | |
|         colstart = 40;
 | |
|         rowstart = 53;
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         colstart = 0;
 | |
|         rowstart = 0;
 | |
|       }
 | |
| #endif
 | |
|       writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_COLOR_ORDER);
 | |
| 
 | |
|       _width  = _init_height;
 | |
|       _height = _init_width;
 | |
|       break;
 | |
| 
 | |
|       case 2: // Inverter portrait
 | |
| #ifdef CGRAM_OFFSET
 | |
|       if (_init_width == 135)
 | |
|       {
 | |
|         colstart = 53;
 | |
|         rowstart = 40;
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         colstart = 0;
 | |
|         rowstart = 80;
 | |
|       }
 | |
| #endif
 | |
|       writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_COLOR_ORDER);
 | |
| 
 | |
|       _width  = _init_width;
 | |
|       _height = _init_height;
 | |
|        break;
 | |
|     case 3: // Inverted landscape
 | |
| #ifdef CGRAM_OFFSET
 | |
|       if (_init_width == 135)
 | |
|       {
 | |
|         colstart = 40;
 | |
|         rowstart = 52;
 | |
|       }
 | |
|       else
 | |
|       {
 | |
|         colstart = 80;
 | |
|         rowstart = 0;
 | |
|       }
 | |
| #endif
 | |
|       writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_COLOR_ORDER);
 | |
| 
 | |
|       _width  = _init_height;
 | |
|       _height = _init_width;
 | |
|       break;
 | |
|   }
 |