void MI0283QT9::setOrientation(uint16_t o) { #define MEM_Y (7) //MY row address order #define MEM_X (6) //MX column address order #define MEM_V (5) //MV row / column exchange #define MEM_L (4) //ML vertical refresh order #define MEM_H (2) //MH horizontal refresh order #define MEM_BGR (3) //RGB-BGR Order wr_cmd(LCD_CMD_MEMACCESS_CTRL); switch(o) { default: case 0: lcd_orientation = 0; lcd_width = 320; lcd_height = 240; wr_data((1<<MEM_BGR) | (1<<MEM_X) | (1<<MEM_Y) | (1<<MEM_V)); break; case 90: lcd_orientation = 90; lcd_width = 240; lcd_height = 320; wr_data((1<<MEM_BGR) | (1<<MEM_X)); break; case 180: lcd_orientation = 180; lcd_width = 320; lcd_height = 240; wr_data((1<<MEM_BGR) | (1<<MEM_L) | (1<<MEM_V)); break; case 270: lcd_orientation = 270; lcd_width = 240; lcd_height = 320; wr_data((1<<MEM_BGR) | (1<<MEM_Y)); break; } setArea(0, 0, lcd_width-1, lcd_height-1); p_x = PRINT_STARTX; p_y = PRINT_STARTY; return; }
//----------------------- // display_162 //----------------------- void display_162(void) { unsigned char i; //WDR(); wr_com(0x80); //set ram address, line1 for(i=0;i<16;i++) { wr_data(lcd_line1[i]); //display "0" } wr_com(0xc0); // dispaly line2 for(i=0;i<16;i++) { wr_data(lcd_line2[i]); //display "0" } }
void MI0283QT9::setOrientation(uint_least16_t o) { uint_least8_t p; #define MEM_Y (7) //MY row address order #define MEM_X (6) //MX column address order #define MEM_V (5) //MV row / column exchange #define MEM_L (4) //ML vertical refresh order #define MEM_H (2) //MH horizontal refresh order #define MEM_BGR (3) //RGB-BGR Order if((o == 9) || (o == 90)) { lcd_orientation = 90; lcd_width = LCD_HEIGHT; lcd_height = LCD_WIDTH; p = (1<<MEM_BGR) | (1<<MEM_X); } else if((o == 18) || (o == 180)) { lcd_orientation = 180; lcd_width = LCD_WIDTH; lcd_height = LCD_HEIGHT; p = (1<<MEM_BGR) | (1<<MEM_L) | (1<<MEM_V); } else if((o == 27) || (o == 14) || (o == 270)) { lcd_orientation = 270; lcd_width = LCD_HEIGHT; lcd_height = LCD_WIDTH; p = (1<<MEM_BGR) | (1<<MEM_Y); } else { lcd_orientation = 0; lcd_width = LCD_WIDTH; lcd_height = LCD_HEIGHT; p = (1<<MEM_BGR) | (1<<MEM_X) | (1<<MEM_Y) | (1<<MEM_V); } wr_cmd(LCD_CMD_MEMACCESS_CTRL); wr_data(p); setArea(0, 0, lcd_width-1, lcd_height-1); return; }
void wr_reg( int ra, int rd ) { command( ra ); wr_data( rd ); }