Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 00003 #define DATA_SIZE 128*128 00004 LocalFileSystem local("local"); 00005 00006 DigitalOut CS(p21); 00007 DigitalOut A0(p22); 00008 DigitalOut E(p23); 00009 DigitalOut WRB(p24); 00010 DigitalOut RES(p25); 00011 00012 BusOut P1(p10, p11, p12, p13, p14, p15, p16, p17); 00013 00014 Timer t; 00015 00016 void WriteCOM(unsigned char a) { 00017 CS=0; 00018 E=1; 00019 A0=0; 00020 P1=a; 00021 WRB=0; 00022 WRB=1; 00023 CS=1; 00024 } 00025 00026 void WriteDAT(unsigned char b) { 00027 CS=0; 00028 E=1; 00029 A0=1; 00030 P1=b; 00031 WRB=0; 00032 WRB=1; 00033 CS=1; 00034 } 00035 00036 void init_lcd(void) { 00037 RES=1; 00038 wait_ms(100); 00039 RES=0; 00040 wait_ms(100); 00041 RES=1; 00042 wait_ms(120); 00043 00044 WriteCOM(0x01); 00045 wait_ms(50); 00046 00047 WriteCOM(0x11);//SLEEP OUT 00048 wait_ms(200); 00049 00050 WriteCOM(0xFF); 00051 WriteDAT(0x40); 00052 WriteDAT(0x03); 00053 WriteDAT(0x1A); 00054 00055 WriteCOM(0xd9); 00056 WriteDAT(0x60); 00057 WriteCOM(0xc7); 00058 WriteDAT(0x90); 00059 wait_ms(200); 00060 00061 WriteCOM(0xB1); 00062 WriteDAT(0x04); 00063 WriteDAT(0x25); 00064 WriteDAT(0x18); 00065 00066 WriteCOM(0xB2); 00067 WriteDAT(0x04); 00068 WriteDAT(0x25); 00069 WriteDAT(0x18); 00070 00071 WriteCOM(0xB3); 00072 WriteDAT(0x04); 00073 WriteDAT(0x25); 00074 WriteDAT(0x18); 00075 WriteDAT(0x04); 00076 WriteDAT(0x25); 00077 WriteDAT(0x18); 00078 00079 WriteCOM(0xB4); 00080 WriteDAT(0x03); 00081 00082 WriteCOM(0xB6); 00083 WriteDAT(0x15); 00084 WriteDAT(0x02); 00085 00086 WriteCOM(0xC0);// POWER CONTROL 1 GVDD&VCI1 00087 WriteDAT(0x02); 00088 WriteDAT(0x70); 00089 00090 WriteCOM(0xC1);// POWER CONTROL 2 GVDD&VCI1 00091 WriteDAT(0x07); 00092 00093 WriteCOM(0xC2);// POWER CONTROL 3 GVDD&VCI1 00094 WriteDAT(0x01); 00095 WriteDAT(0x01); 00096 00097 WriteCOM(0xC3);// POWER CONTROL 4 GVDD&VCI1 00098 WriteDAT(0x02); 00099 WriteDAT(0x07); 00100 00101 WriteCOM(0xC4);// POWER CONTROL 5 GVDD&VCI1 00102 WriteDAT(0x02); 00103 WriteDAT(0x04); 00104 00105 WriteCOM(0xFC);// POWER CONTROL 6 GVDD&VCI1 00106 WriteDAT(0x11); 00107 WriteDAT(0x17); 00108 00109 WriteCOM(0xC5);//VCOMH&VCOML 00110 WriteDAT(0x3c); 00111 WriteDAT(0x4f); 00112 00113 WriteCOM(0x36);//MV,MX,MY,RGB 00114 WriteDAT(0x88); 00115 00116 00117 WriteCOM(0x3a);//GAMMA SET BY REGISTER 00118 WriteDAT(0x05); 00119 00120 //***********************GAMMA************************* 00121 WriteCOM(0xE0); 00122 WriteDAT(0x06); 00123 WriteDAT(0x0E); 00124 WriteDAT(0x05); 00125 WriteDAT(0x20); 00126 WriteDAT(0x27); 00127 WriteDAT(0x23); 00128 WriteDAT(0x1C); 00129 WriteDAT(0x21); 00130 WriteDAT(0x20); 00131 WriteDAT(0x1C); 00132 WriteDAT(0x26); 00133 WriteDAT(0x2F); 00134 WriteDAT(0x00); 00135 WriteDAT(0x03); 00136 WriteDAT(0x00); 00137 WriteDAT(0x24); 00138 00139 WriteCOM(0xE1); 00140 WriteDAT(0x06); 00141 WriteDAT(0x10); 00142 WriteDAT(0x05); 00143 WriteDAT(0x21); 00144 WriteDAT(0x27); 00145 WriteDAT(0x22); 00146 WriteDAT(0x1C); 00147 WriteDAT(0x21); 00148 WriteDAT(0x1F); 00149 WriteDAT(0x1D); 00150 WriteDAT(0x27); 00151 WriteDAT(0x2F); 00152 WriteDAT(0x05); 00153 WriteDAT(0x03); 00154 WriteDAT(0x00); 00155 WriteDAT(0x3F); 00156 00157 //***************************RAM ADDRESS******************* 00158 WriteCOM(0x2A); 00159 WriteDAT(0x00); 00160 WriteDAT(0x02); 00161 WriteDAT(0x00); 00162 WriteDAT(0x81); 00163 00164 WriteCOM(0x2B); 00165 WriteDAT(0x00); 00166 WriteDAT(0x03); 00167 WriteDAT(0x00); 00168 WriteDAT(0x82); 00169 00170 WriteCOM(0x29); 00171 wait_ms(100); 00172 00173 WriteCOM(0x2C); 00174 } 00175 00176 int main() { 00177 FILE *fpi; 00178 int i; 00179 unsigned char idat; 00180 unsigned char dat,dat2; 00181 00182 init_lcd(); 00183 00184 if ((fpi=fopen("/local/sample.bmp", "rb")) == NULL) { 00185 fprintf(stderr, "input file open error\n"); 00186 exit(1); 00187 } 00188 00189 for (i=0;i<0x36;i++)//bitmap headder throw 00190 fread(&idat, sizeof(unsigned char), 1, fpi); 00191 00192 for (i=0; i<DATA_SIZE; i++) { 00193 fread(&dat, sizeof(unsigned char), 1, fpi); 00194 fread(&dat2, sizeof(unsigned char), 1, fpi); 00195 00196 dat2 = (dat2 << 1) | (dat >> 7); 00197 dat = ((dat & 0x60) << 1) | (dat & 0x1F); 00198 00199 WriteDAT(dat2); 00200 WriteDAT(dat); 00201 } 00202 fclose(fpi); 00203 }
Generated on Sun Jul 17 2022 14:45:24 by
1.7.2