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;
 | 
						|
  }
 |