Revision 0:35eaeb9adebb, committed 2010-07-08
- Comitter:
- nucho
- Date:
- Thu Jul 08 14:23:27 2010 +0000
- Commit message:
Changed in this revision
diff -r 000000000000 -r 35eaeb9adebb main.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Thu Jul 08 14:23:27 2010 +0000
@@ -0,0 +1,203 @@
+#include "mbed.h"
+
+#define DATA_SIZE 128*128
+LocalFileSystem local("local");
+
+DigitalOut CS(p21);
+DigitalOut A0(p22);
+DigitalOut E(p23);
+DigitalOut WRB(p24);
+DigitalOut RES(p25);
+
+BusOut P1(p10, p11, p12, p13, p14, p15, p16, p17);
+
+Timer t;
+
+void WriteCOM(unsigned char a) {
+ CS=0;
+ E=1;
+ A0=0;
+ P1=a;
+ WRB=0;
+ WRB=1;
+ CS=1;
+}
+
+void WriteDAT(unsigned char b) {
+ CS=0;
+ E=1;
+ A0=1;
+ P1=b;
+ WRB=0;
+ WRB=1;
+ CS=1;
+}
+
+void init_lcd(void) {
+ RES=1;
+ wait_ms(100);
+ RES=0;
+ wait_ms(100);
+ RES=1;
+ wait_ms(120);
+
+ WriteCOM(0x01);
+ wait_ms(50);
+
+ WriteCOM(0x11);//SLEEP OUT
+ wait_ms(200);
+
+ WriteCOM(0xFF);
+ WriteDAT(0x40);
+ WriteDAT(0x03);
+ WriteDAT(0x1A);
+
+ WriteCOM(0xd9);
+ WriteDAT(0x60);
+ WriteCOM(0xc7);
+ WriteDAT(0x90);
+ wait_ms(200);
+
+ WriteCOM(0xB1);
+ WriteDAT(0x04);
+ WriteDAT(0x25);
+ WriteDAT(0x18);
+
+ WriteCOM(0xB2);
+ WriteDAT(0x04);
+ WriteDAT(0x25);
+ WriteDAT(0x18);
+
+ WriteCOM(0xB3);
+ WriteDAT(0x04);
+ WriteDAT(0x25);
+ WriteDAT(0x18);
+ WriteDAT(0x04);
+ WriteDAT(0x25);
+ WriteDAT(0x18);
+
+ WriteCOM(0xB4);
+ WriteDAT(0x03);
+
+ WriteCOM(0xB6);
+ WriteDAT(0x15);
+ WriteDAT(0x02);
+
+ WriteCOM(0xC0);// POWER CONTROL 1 GVDD&VCI1
+ WriteDAT(0x02);
+ WriteDAT(0x70);
+
+ WriteCOM(0xC1);// POWER CONTROL 2 GVDD&VCI1
+ WriteDAT(0x07);
+
+ WriteCOM(0xC2);// POWER CONTROL 3 GVDD&VCI1
+ WriteDAT(0x01);
+ WriteDAT(0x01);
+
+ WriteCOM(0xC3);// POWER CONTROL 4 GVDD&VCI1
+ WriteDAT(0x02);
+ WriteDAT(0x07);
+
+ WriteCOM(0xC4);// POWER CONTROL 5 GVDD&VCI1
+ WriteDAT(0x02);
+ WriteDAT(0x04);
+
+ WriteCOM(0xFC);// POWER CONTROL 6 GVDD&VCI1
+ WriteDAT(0x11);
+ WriteDAT(0x17);
+
+ WriteCOM(0xC5);//VCOMH&VCOML
+ WriteDAT(0x3c);
+ WriteDAT(0x4f);
+
+ WriteCOM(0x36);//MV,MX,MY,RGB
+ WriteDAT(0x88);
+
+
+ WriteCOM(0x3a);//GAMMA SET BY REGISTER
+ WriteDAT(0x05);
+
+//***********************GAMMA*************************
+ WriteCOM(0xE0);
+ WriteDAT(0x06);
+ WriteDAT(0x0E);
+ WriteDAT(0x05);
+ WriteDAT(0x20);
+ WriteDAT(0x27);
+ WriteDAT(0x23);
+ WriteDAT(0x1C);
+ WriteDAT(0x21);
+ WriteDAT(0x20);
+ WriteDAT(0x1C);
+ WriteDAT(0x26);
+ WriteDAT(0x2F);
+ WriteDAT(0x00);
+ WriteDAT(0x03);
+ WriteDAT(0x00);
+ WriteDAT(0x24);
+
+ WriteCOM(0xE1);
+ WriteDAT(0x06);
+ WriteDAT(0x10);
+ WriteDAT(0x05);
+ WriteDAT(0x21);
+ WriteDAT(0x27);
+ WriteDAT(0x22);
+ WriteDAT(0x1C);
+ WriteDAT(0x21);
+ WriteDAT(0x1F);
+ WriteDAT(0x1D);
+ WriteDAT(0x27);
+ WriteDAT(0x2F);
+ WriteDAT(0x05);
+ WriteDAT(0x03);
+ WriteDAT(0x00);
+ WriteDAT(0x3F);
+
+//***************************RAM ADDRESS*******************
+ WriteCOM(0x2A);
+ WriteDAT(0x00);
+ WriteDAT(0x02);
+ WriteDAT(0x00);
+ WriteDAT(0x81);
+
+ WriteCOM(0x2B);
+ WriteDAT(0x00);
+ WriteDAT(0x03);
+ WriteDAT(0x00);
+ WriteDAT(0x82);
+
+ WriteCOM(0x29);
+ wait_ms(100);
+
+ WriteCOM(0x2C);
+}
+
+int main() {
+ FILE *fpi;
+ int i;
+ unsigned char idat;
+ unsigned char dat,dat2;
+
+ init_lcd();
+
+ if ((fpi=fopen("/local/sample.bmp", "rb")) == NULL) {
+ fprintf(stderr, "input file open error\n");
+ exit(1);
+ }
+
+ for (i=0;i<0x36;i++)//bitmap headder throw
+ fread(&idat, sizeof(unsigned char), 1, fpi);
+
+ for (i=0; i<DATA_SIZE; i++) {
+ fread(&dat, sizeof(unsigned char), 1, fpi);
+ fread(&dat2, sizeof(unsigned char), 1, fpi);
+
+ dat2 = (dat2 << 1) | (dat >> 7);
+ dat = ((dat & 0x60) << 1) | (dat & 0x1F);
+
+ WriteDAT(dat2);
+ WriteDAT(dat);
+ }
+ fclose(fpi);
+}
diff -r 000000000000 -r 35eaeb9adebb mbed.bld
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld Thu Jul 08 14:23:27 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/029aa53d7323