1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107 |
LCD_WriteCom(0x00E2);
LCD_WriteRAM(0x0023);
// Set PLL with OSC = 10MHz (hardware)
// Multiplier N = 35, VCO (>250MHz)= OSC*(N+1), VCO = 360MHz
LCD_WriteRAM(0x0001);
// Divider M = 2, PLL = 360/(M+1) = 120MHz
LCD_WriteRAM(0x0004);
// Validate M and N values
SSD1963_WriteCommand(SSD1963_SET_PLL_MN);
SSD1963_WriteData(0x1D); // PLLclk = REFclk * 30 (300MHz)
SSD1963_WriteData(0x02); // SYSclk = PLLclk / 3 (100MHz)
SSD1963_WriteData(0x54); // dummy
TimeDelay(1);
LCD_WriteCom(0x00E0); // PLL enable
LCD_WriteRAM(0x0001);
TimeDelay(1);
LCD_WriteCom(0x00E0);
LCD_WriteRAM(0x0003);
TimeDelay(1);
LCD_WriteCom(0x0001); // software reset
TimeDelay(1);
LCD_WriteCom(0x00E6);
LCD_WriteRAM(0x0004);
LCD_WriteRAM(0x0093);
LCD_WriteRAM(0x00e0);
LCD_WriteCom(0x00B0); //LCD SPECIFICATION
LCD_WriteRAM(0x0000);
LCD_WriteRAM(0x0000);
LCD_WriteRAM((HDP>>8)&0X00FF); //Set HDP
LCD_WriteRAM(HDP&0X00FF);
LCD_WriteRAM((VDP>>8)&0X00FF); //Set VDP
LCD_WriteRAM(VDP&0X00FF);
LCD_WriteRAM(0x0000);
TimeDelay(1);
LCD_WriteCom(0x00B4); //HSYNC
LCD_WriteRAM((HT>>8)&0X00FF); //Set HT
LCD_WriteRAM(HT&0X00FF);
LCD_WriteRAM((HPS>>8)&0X00FF); //Set HPS
LCD_WriteRAM(HPS&0X00FF);
LCD_WriteRAM(HPW); //Set HPW
LCD_WriteRAM((LPS>>8)&0X00FF); //Set HPS
LCD_WriteRAM(LPS&0X00FF);
LCD_WriteRAM(0x0000);
TimeDelay(1);
LCD_WriteCom(0x00B6); //VSYNC
LCD_WriteRAM((VT>>8)&0X00FF); //Set VT
LCD_WriteRAM(VT&0X00FF);
LCD_WriteRAM((VPS>>8)&0X00FF); //Set VPS
LCD_WriteRAM(VPS&0X00FF);
LCD_WriteRAM(VPW); //Set VPW
LCD_WriteRAM((FPS>>8)&0X00FF); //Set FPS
LCD_WriteRAM(FPS&0X00FF);
TimeDelay(1);
LCD_WriteCom(0x00BA);
LCD_WriteRAM(0x0005);//0x000F); //GPIO[3:0] out 1
TimeDelay(1);
LCD_WriteCom(0x00B8);
LCD_WriteRAM(0x0007); //GPIO3=input, GPIO[2:0]=output
LCD_WriteRAM(0x0001); //GPIO0 normal
TimeDelay(1);
LCD_WriteCom(0x0036); //rotation
LCD_WriteRAM(0x0008);
TimeDelay(1);
LCD_WriteCom(0x00F0); //pixel data interface
LCD_WriteRAM(0x0003);
TimeDelay(1);
TimeDelay(1);
LCD_WriteCom(0x0029); //display on
TimeDelay(1);
LCD_WriteCom(0x00BE); //set PWM for B/L
LCD_WriteRAM(0x0006);
LCD_WriteRAM(0x0080);
TimeDelay(1);
LCD_WriteRAM(0x0001);
LCD_WriteRAM(0x00f0);
LCD_WriteRAM(0x0000);
LCD_WriteRAM(0x0000);
TimeDelay(1);
LCD_WriteCom(0x00d0);//??????????
LCD_WriteRAM(0x000d);
TimeDelay(1);
|