Basically i glued Peter Drescher and Simon Ford libs in a GraphicsDisplay class, then derived TFT or LCD class (which inherits Protocols class), then the most derived ones (Inits), which are per-display and are the only part needed to be adapted to diff hw.
Dependents: testUniGraphic_150217 maze_TFT_MMA8451Q TFT_test_frdm-kl25z TFT_test_NUCLEO-F411RE ... more
Diff: Inits/SEPS225.cpp
- Revision:
- 24:1a2ebae1d289
- Parent:
- 23:d0eb35bbd2f3
- Child:
- 31:ef4225cef157
diff -r d0eb35bbd2f3 -r 1a2ebae1d289 Inits/SEPS225.cpp --- a/Inits/SEPS225.cpp Thu Jun 18 02:25:31 2015 +0000 +++ b/Inits/SEPS225.cpp Mon Jun 22 02:21:06 2015 +0000 @@ -139,21 +139,24 @@ reg_write(CMD_OSC_CTL, 0x01) ; reg_write(CMD_CLOCK_DIV, 0x30) ; - reg_write(CMD_PRECHARGE_TIME_R, 0x03) ; - reg_write(CMD_PRECHARGE_TIME_G, 0x04) ; - reg_write(CMD_PRECHARGE_TIME_B, 0x05) ; -// reg_write(CMD_PRECHARGE_TIME_R, 0x0E) ; -// reg_write(CMD_PRECHARGE_TIME_G, 0x0E) ; -// reg_write(CMD_PRECHARGE_TIME_B, 0x0E) ; - reg_write(CMD_PRECHARGE_CURRENT_R, 0x0B) ; - reg_write(CMD_PRECHARGE_CURRENT_G, 0x0B) ; - reg_write(CMD_PRECHARGE_CURRENT_B, 0x0B) ; -// reg_write(CMD_DRIVING_CURRENT_R, 0x3E) ; -// reg_write(CMD_DRIVING_CURRENT_G, 0x32) ; -// reg_write(CMD_DRIVING_CURRENT_B, 0x3D) ; - reg_write(CMD_DRIVING_CURRENT_R, 0x0B) ; - reg_write(CMD_DRIVING_CURRENT_G, 0x0B) ; - reg_write(CMD_DRIVING_CURRENT_B, 0x0B) ; +// reg_write(CMD_PRECHARGE_TIME_R, 0x03) ; +// reg_write(CMD_PRECHARGE_TIME_G, 0x04) ; +// reg_write(CMD_PRECHARGE_TIME_B, 0x05) ; + reg_write(CMD_PRECHARGE_TIME_R, 0x0E) ; + reg_write(CMD_PRECHARGE_TIME_G, 0x0E) ; + reg_write(CMD_PRECHARGE_TIME_B, 0x0E) ; +// reg_write(CMD_PRECHARGE_CURRENT_R, 0x0B) ; +// reg_write(CMD_PRECHARGE_CURRENT_G, 0x0B) ; +// reg_write(CMD_PRECHARGE_CURRENT_B, 0x0B) ; + reg_write(CMD_PRECHARGE_CURRENT_R, 0x3E) ; + reg_write(CMD_PRECHARGE_CURRENT_G, 0x32) ; + reg_write(CMD_PRECHARGE_CURRENT_B, 0x3D) ; + reg_write(CMD_DRIVING_CURRENT_R, 0x3E) ; + reg_write(CMD_DRIVING_CURRENT_G, 0x32) ; + reg_write(CMD_DRIVING_CURRENT_B, 0x3D) ; +// reg_write(CMD_DRIVING_CURRENT_R, 0x0B) ; +// reg_write(CMD_DRIVING_CURRENT_G, 0x0B) ; +// reg_write(CMD_DRIVING_CURRENT_B, 0x0B) ; // Memory Write Mode // 16bit * 1 transfer mode, R[5], G[6], B[5] // H:Inc, V:Inc, Method:V @@ -214,6 +217,8 @@ reg_write(CMD_MX2_ADDR, x+w-1) ; reg_write(CMD_MY1_ADDR, y) ; reg_write(CMD_MY2_ADDR, y+h-1) ; + reg_write(CMD_MEMORY_ACCESS_POINTER_X, x) ; + reg_write(CMD_MEMORY_ACCESS_POINTER_Y, y) ; } void SEPS225::cls(void) @@ -238,6 +243,30 @@ return(value) ; } +void SEPS225::rect(int x0, int y0, int x1, int y1, unsigned short color) +{ + float interval = 0.01 ; +// window(x0, y0, x1-x0+1, y1-y0+1) ; + *_cs = 0 ; + wait(interval) ; + line(x0, y0, x1, y0, color) ; + *_cs = 1 ; + wait(interval) ; + *_cs = 0 ; + line(x1, y0, x1, y1, color) ; + *_cs = 1 ; + wait(interval) ; + *_cs = 0 ; + line(x0, y0, x0, y1, color) ; + *_cs = 1 ; + wait(interval) ; + *_cs = 0 ; + line(x0, y1, x1, y1, color) ; + wait(interval) ; + *_cs = 1 ; +// *_cs = 1 ; +} + void SEPS225::window4read(int x, int y, int w, int h) { //printf("SEPS225::window4read not implemented\n\r") ;