Dependencies:   mbed

Committer:
nucho
Date:
Thu Jul 08 14:23:27 2010 +0000
Revision:
0:35eaeb9adebb

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nucho 0:35eaeb9adebb 1 #include "mbed.h"
nucho 0:35eaeb9adebb 2
nucho 0:35eaeb9adebb 3 #define DATA_SIZE 128*128
nucho 0:35eaeb9adebb 4 LocalFileSystem local("local");
nucho 0:35eaeb9adebb 5
nucho 0:35eaeb9adebb 6 DigitalOut CS(p21);
nucho 0:35eaeb9adebb 7 DigitalOut A0(p22);
nucho 0:35eaeb9adebb 8 DigitalOut E(p23);
nucho 0:35eaeb9adebb 9 DigitalOut WRB(p24);
nucho 0:35eaeb9adebb 10 DigitalOut RES(p25);
nucho 0:35eaeb9adebb 11
nucho 0:35eaeb9adebb 12 BusOut P1(p10, p11, p12, p13, p14, p15, p16, p17);
nucho 0:35eaeb9adebb 13
nucho 0:35eaeb9adebb 14 Timer t;
nucho 0:35eaeb9adebb 15
nucho 0:35eaeb9adebb 16 void WriteCOM(unsigned char a) {
nucho 0:35eaeb9adebb 17 CS=0;
nucho 0:35eaeb9adebb 18 E=1;
nucho 0:35eaeb9adebb 19 A0=0;
nucho 0:35eaeb9adebb 20 P1=a;
nucho 0:35eaeb9adebb 21 WRB=0;
nucho 0:35eaeb9adebb 22 WRB=1;
nucho 0:35eaeb9adebb 23 CS=1;
nucho 0:35eaeb9adebb 24 }
nucho 0:35eaeb9adebb 25
nucho 0:35eaeb9adebb 26 void WriteDAT(unsigned char b) {
nucho 0:35eaeb9adebb 27 CS=0;
nucho 0:35eaeb9adebb 28 E=1;
nucho 0:35eaeb9adebb 29 A0=1;
nucho 0:35eaeb9adebb 30 P1=b;
nucho 0:35eaeb9adebb 31 WRB=0;
nucho 0:35eaeb9adebb 32 WRB=1;
nucho 0:35eaeb9adebb 33 CS=1;
nucho 0:35eaeb9adebb 34 }
nucho 0:35eaeb9adebb 35
nucho 0:35eaeb9adebb 36 void init_lcd(void) {
nucho 0:35eaeb9adebb 37 RES=1;
nucho 0:35eaeb9adebb 38 wait_ms(100);
nucho 0:35eaeb9adebb 39 RES=0;
nucho 0:35eaeb9adebb 40 wait_ms(100);
nucho 0:35eaeb9adebb 41 RES=1;
nucho 0:35eaeb9adebb 42 wait_ms(120);
nucho 0:35eaeb9adebb 43
nucho 0:35eaeb9adebb 44 WriteCOM(0x01);
nucho 0:35eaeb9adebb 45 wait_ms(50);
nucho 0:35eaeb9adebb 46
nucho 0:35eaeb9adebb 47 WriteCOM(0x11);//SLEEP OUT
nucho 0:35eaeb9adebb 48 wait_ms(200);
nucho 0:35eaeb9adebb 49
nucho 0:35eaeb9adebb 50 WriteCOM(0xFF);
nucho 0:35eaeb9adebb 51 WriteDAT(0x40);
nucho 0:35eaeb9adebb 52 WriteDAT(0x03);
nucho 0:35eaeb9adebb 53 WriteDAT(0x1A);
nucho 0:35eaeb9adebb 54
nucho 0:35eaeb9adebb 55 WriteCOM(0xd9);
nucho 0:35eaeb9adebb 56 WriteDAT(0x60);
nucho 0:35eaeb9adebb 57 WriteCOM(0xc7);
nucho 0:35eaeb9adebb 58 WriteDAT(0x90);
nucho 0:35eaeb9adebb 59 wait_ms(200);
nucho 0:35eaeb9adebb 60
nucho 0:35eaeb9adebb 61 WriteCOM(0xB1);
nucho 0:35eaeb9adebb 62 WriteDAT(0x04);
nucho 0:35eaeb9adebb 63 WriteDAT(0x25);
nucho 0:35eaeb9adebb 64 WriteDAT(0x18);
nucho 0:35eaeb9adebb 65
nucho 0:35eaeb9adebb 66 WriteCOM(0xB2);
nucho 0:35eaeb9adebb 67 WriteDAT(0x04);
nucho 0:35eaeb9adebb 68 WriteDAT(0x25);
nucho 0:35eaeb9adebb 69 WriteDAT(0x18);
nucho 0:35eaeb9adebb 70
nucho 0:35eaeb9adebb 71 WriteCOM(0xB3);
nucho 0:35eaeb9adebb 72 WriteDAT(0x04);
nucho 0:35eaeb9adebb 73 WriteDAT(0x25);
nucho 0:35eaeb9adebb 74 WriteDAT(0x18);
nucho 0:35eaeb9adebb 75 WriteDAT(0x04);
nucho 0:35eaeb9adebb 76 WriteDAT(0x25);
nucho 0:35eaeb9adebb 77 WriteDAT(0x18);
nucho 0:35eaeb9adebb 78
nucho 0:35eaeb9adebb 79 WriteCOM(0xB4);
nucho 0:35eaeb9adebb 80 WriteDAT(0x03);
nucho 0:35eaeb9adebb 81
nucho 0:35eaeb9adebb 82 WriteCOM(0xB6);
nucho 0:35eaeb9adebb 83 WriteDAT(0x15);
nucho 0:35eaeb9adebb 84 WriteDAT(0x02);
nucho 0:35eaeb9adebb 85
nucho 0:35eaeb9adebb 86 WriteCOM(0xC0);// POWER CONTROL 1 GVDD&VCI1
nucho 0:35eaeb9adebb 87 WriteDAT(0x02);
nucho 0:35eaeb9adebb 88 WriteDAT(0x70);
nucho 0:35eaeb9adebb 89
nucho 0:35eaeb9adebb 90 WriteCOM(0xC1);// POWER CONTROL 2 GVDD&VCI1
nucho 0:35eaeb9adebb 91 WriteDAT(0x07);
nucho 0:35eaeb9adebb 92
nucho 0:35eaeb9adebb 93 WriteCOM(0xC2);// POWER CONTROL 3 GVDD&VCI1
nucho 0:35eaeb9adebb 94 WriteDAT(0x01);
nucho 0:35eaeb9adebb 95 WriteDAT(0x01);
nucho 0:35eaeb9adebb 96
nucho 0:35eaeb9adebb 97 WriteCOM(0xC3);// POWER CONTROL 4 GVDD&VCI1
nucho 0:35eaeb9adebb 98 WriteDAT(0x02);
nucho 0:35eaeb9adebb 99 WriteDAT(0x07);
nucho 0:35eaeb9adebb 100
nucho 0:35eaeb9adebb 101 WriteCOM(0xC4);// POWER CONTROL 5 GVDD&VCI1
nucho 0:35eaeb9adebb 102 WriteDAT(0x02);
nucho 0:35eaeb9adebb 103 WriteDAT(0x04);
nucho 0:35eaeb9adebb 104
nucho 0:35eaeb9adebb 105 WriteCOM(0xFC);// POWER CONTROL 6 GVDD&VCI1
nucho 0:35eaeb9adebb 106 WriteDAT(0x11);
nucho 0:35eaeb9adebb 107 WriteDAT(0x17);
nucho 0:35eaeb9adebb 108
nucho 0:35eaeb9adebb 109 WriteCOM(0xC5);//VCOMH&VCOML
nucho 0:35eaeb9adebb 110 WriteDAT(0x3c);
nucho 0:35eaeb9adebb 111 WriteDAT(0x4f);
nucho 0:35eaeb9adebb 112
nucho 0:35eaeb9adebb 113 WriteCOM(0x36);//MV,MX,MY,RGB
nucho 0:35eaeb9adebb 114 WriteDAT(0x88);
nucho 0:35eaeb9adebb 115
nucho 0:35eaeb9adebb 116
nucho 0:35eaeb9adebb 117 WriteCOM(0x3a);//GAMMA SET BY REGISTER
nucho 0:35eaeb9adebb 118 WriteDAT(0x05);
nucho 0:35eaeb9adebb 119
nucho 0:35eaeb9adebb 120 //***********************GAMMA*************************
nucho 0:35eaeb9adebb 121 WriteCOM(0xE0);
nucho 0:35eaeb9adebb 122 WriteDAT(0x06);
nucho 0:35eaeb9adebb 123 WriteDAT(0x0E);
nucho 0:35eaeb9adebb 124 WriteDAT(0x05);
nucho 0:35eaeb9adebb 125 WriteDAT(0x20);
nucho 0:35eaeb9adebb 126 WriteDAT(0x27);
nucho 0:35eaeb9adebb 127 WriteDAT(0x23);
nucho 0:35eaeb9adebb 128 WriteDAT(0x1C);
nucho 0:35eaeb9adebb 129 WriteDAT(0x21);
nucho 0:35eaeb9adebb 130 WriteDAT(0x20);
nucho 0:35eaeb9adebb 131 WriteDAT(0x1C);
nucho 0:35eaeb9adebb 132 WriteDAT(0x26);
nucho 0:35eaeb9adebb 133 WriteDAT(0x2F);
nucho 0:35eaeb9adebb 134 WriteDAT(0x00);
nucho 0:35eaeb9adebb 135 WriteDAT(0x03);
nucho 0:35eaeb9adebb 136 WriteDAT(0x00);
nucho 0:35eaeb9adebb 137 WriteDAT(0x24);
nucho 0:35eaeb9adebb 138
nucho 0:35eaeb9adebb 139 WriteCOM(0xE1);
nucho 0:35eaeb9adebb 140 WriteDAT(0x06);
nucho 0:35eaeb9adebb 141 WriteDAT(0x10);
nucho 0:35eaeb9adebb 142 WriteDAT(0x05);
nucho 0:35eaeb9adebb 143 WriteDAT(0x21);
nucho 0:35eaeb9adebb 144 WriteDAT(0x27);
nucho 0:35eaeb9adebb 145 WriteDAT(0x22);
nucho 0:35eaeb9adebb 146 WriteDAT(0x1C);
nucho 0:35eaeb9adebb 147 WriteDAT(0x21);
nucho 0:35eaeb9adebb 148 WriteDAT(0x1F);
nucho 0:35eaeb9adebb 149 WriteDAT(0x1D);
nucho 0:35eaeb9adebb 150 WriteDAT(0x27);
nucho 0:35eaeb9adebb 151 WriteDAT(0x2F);
nucho 0:35eaeb9adebb 152 WriteDAT(0x05);
nucho 0:35eaeb9adebb 153 WriteDAT(0x03);
nucho 0:35eaeb9adebb 154 WriteDAT(0x00);
nucho 0:35eaeb9adebb 155 WriteDAT(0x3F);
nucho 0:35eaeb9adebb 156
nucho 0:35eaeb9adebb 157 //***************************RAM ADDRESS*******************
nucho 0:35eaeb9adebb 158 WriteCOM(0x2A);
nucho 0:35eaeb9adebb 159 WriteDAT(0x00);
nucho 0:35eaeb9adebb 160 WriteDAT(0x02);
nucho 0:35eaeb9adebb 161 WriteDAT(0x00);
nucho 0:35eaeb9adebb 162 WriteDAT(0x81);
nucho 0:35eaeb9adebb 163
nucho 0:35eaeb9adebb 164 WriteCOM(0x2B);
nucho 0:35eaeb9adebb 165 WriteDAT(0x00);
nucho 0:35eaeb9adebb 166 WriteDAT(0x03);
nucho 0:35eaeb9adebb 167 WriteDAT(0x00);
nucho 0:35eaeb9adebb 168 WriteDAT(0x82);
nucho 0:35eaeb9adebb 169
nucho 0:35eaeb9adebb 170 WriteCOM(0x29);
nucho 0:35eaeb9adebb 171 wait_ms(100);
nucho 0:35eaeb9adebb 172
nucho 0:35eaeb9adebb 173 WriteCOM(0x2C);
nucho 0:35eaeb9adebb 174 }
nucho 0:35eaeb9adebb 175
nucho 0:35eaeb9adebb 176 int main() {
nucho 0:35eaeb9adebb 177 FILE *fpi;
nucho 0:35eaeb9adebb 178 int i;
nucho 0:35eaeb9adebb 179 unsigned char idat;
nucho 0:35eaeb9adebb 180 unsigned char dat,dat2;
nucho 0:35eaeb9adebb 181
nucho 0:35eaeb9adebb 182 init_lcd();
nucho 0:35eaeb9adebb 183
nucho 0:35eaeb9adebb 184 if ((fpi=fopen("/local/sample.bmp", "rb")) == NULL) {
nucho 0:35eaeb9adebb 185 fprintf(stderr, "input file open error\n");
nucho 0:35eaeb9adebb 186 exit(1);
nucho 0:35eaeb9adebb 187 }
nucho 0:35eaeb9adebb 188
nucho 0:35eaeb9adebb 189 for (i=0;i<0x36;i++)//bitmap headder throw
nucho 0:35eaeb9adebb 190 fread(&idat, sizeof(unsigned char), 1, fpi);
nucho 0:35eaeb9adebb 191
nucho 0:35eaeb9adebb 192 for (i=0; i<DATA_SIZE; i++) {
nucho 0:35eaeb9adebb 193 fread(&dat, sizeof(unsigned char), 1, fpi);
nucho 0:35eaeb9adebb 194 fread(&dat2, sizeof(unsigned char), 1, fpi);
nucho 0:35eaeb9adebb 195
nucho 0:35eaeb9adebb 196 dat2 = (dat2 << 1) | (dat >> 7);
nucho 0:35eaeb9adebb 197 dat = ((dat & 0x60) << 1) | (dat & 0x1F);
nucho 0:35eaeb9adebb 198
nucho 0:35eaeb9adebb 199 WriteDAT(dat2);
nucho 0:35eaeb9adebb 200 WriteDAT(dat);
nucho 0:35eaeb9adebb 201 }
nucho 0:35eaeb9adebb 202 fclose(fpi);
nucho 0:35eaeb9adebb 203 }