cauqleuir madre

Dependencies:   SDFileSystem mbed TFTLCD

Committer:
Danton
Date:
Sat Feb 02 14:12:34 2013 +0000
Revision:
50:86df5e163b08
Parent:
49:843dfe21b2c2
Child:
51:0830f509ed26
changed color from unsgined int to int

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Danton 0:a11b3a90c259 1 #include "mbed.h"
Danton 0:a11b3a90c259 2 #include "SDFileSystem.h"
Danton 2:e205fa129def 3 #include "hx8340bs.h"
allanalpha 42:1c682c42672c 4 DigitalOut scr(p9);
Danton 21:ed9ea3485f93 5 void superDisplay()
Danton 21:ed9ea3485f93 6 {
Danton 21:ed9ea3485f93 7 HX8340S_LCD lcd( p9, p14, p13, p11);
Danton 21:ed9ea3485f93 8 lcd.Initialize();
Danton 21:ed9ea3485f93 9 lcd.ClearScreen();
allanalpha 42:1c682c42672c 10 //lcd.FillScreen(COLOR_BLUE);
Danton 35:ad5fa2b439ad 11 //printf("superDisplay\c\n");
Danton 21:ed9ea3485f93 12 }
allanalpha 40:72ed373557ea 13 void superSd(unsigned char*buffer,unsigned int *offset,int bytes,const char *path)
Danton 15:3bfbb557020e 14 {
Danton 15:3bfbb557020e 15 SDFileSystem sd(p11, p12, p13, p8, "sd"); // the pinout on the mbed Cool Components workshop board
Danton 21:ed9ea3485f93 16 FILE *fp =fopen(path, "r");
Danton 15:3bfbb557020e 17
Danton 15:3bfbb557020e 18 if(fp == NULL) {
Danton 15:3bfbb557020e 19 error("Could not open file\c\n");
Danton 15:3bfbb557020e 20 }
allanalpha 42:1c682c42672c 21 //printf("offset at ssd %d\n",*offset);
allanalpha 40:72ed373557ea 22 fseek(fp, *offset,SEEK_SET);
allanalpha 40:72ed373557ea 23 *offset=*offset+bytes;
Danton 38:7a646be3854c 24 fread((char*)buffer,1,bytes,fp);
allanalpha 42:1c682c42672c 25 //printf("\n");
Danton 15:3bfbb557020e 26 fclose(fp);
Danton 15:3bfbb557020e 27
Danton 15:3bfbb557020e 28 }
Danton 50:86df5e163b08 29 void colorCompute(unsigned char*buffer, int* colorBuffer,int sizeOfBuffer)
Danton 21:ed9ea3485f93 30 {
allanalpha 41:c18e7c2b912a 31 int j=0;
allanalpha 41:c18e7c2b912a 32 for(int i=0;i<sizeOfBuffer;i=i+4)
Danton 21:ed9ea3485f93 33 {
allanalpha 41:c18e7c2b912a 34
Danton 50:86df5e163b08 35 //colorBuffer[j]=RGB((buffer[i])&0xff,buffer[i+1]&0x00,(buffer[i+2])&0x00);
Danton 50:86df5e163b08 36 colorBuffer[j]=RGB((buffer[i]),buffer[i+1],(buffer[i+2]));
Danton 46:bad7d98b0ff8 37 //colorBuffer[j]=((buffer[i]<<11)&0xf800)+((buffer[i+1]<<6)&0x7e0)+((buffer[i+2]>>3)&0x1F);
allanalpha 42:1c682c42672c 38 //colorBuffer[j]=(0xff<<16)+(0x00<<8)+(0x00);
allanalpha 41:c18e7c2b912a 39 //colorBuffer[j]=0xFFFFFF;
allanalpha 41:c18e7c2b912a 40 //printf("%d ,%d ",j,colorBuffer[j]);
Danton 27:bae83e4c9fce 41 j++;
Danton 21:ed9ea3485f93 42 }
allanalpha 42:1c682c42672c 43 //printf("\n");
Danton 21:ed9ea3485f93 44 }
Danton 50:86df5e163b08 45 void pickUpLine(unsigned char*buffer, int* colorBuffer,int sizeOfBuffer,int sizeOfLine,const char *path, unsigned int *absPtr)
Danton 21:ed9ea3485f93 46 {
allanalpha 42:1c682c42672c 47 //printf("Pickupline\n");
allanalpha 41:c18e7c2b912a 48 superSd(buffer,absPtr,sizeOfBuffer,path);
allanalpha 41:c18e7c2b912a 49 // printf("byteofFile%d, pixelnum %d, delta %d",*absPtr,j,delta);
allanalpha 41:c18e7c2b912a 50 colorCompute(buffer,colorBuffer,sizeOfBuffer);
allanalpha 40:72ed373557ea 51 //i=i+delta;
allanalpha 41:c18e7c2b912a 52
allanalpha 42:1c682c42672c 53 //printf("\n");
Danton 21:ed9ea3485f93 54 }
Danton 50:86df5e163b08 55 void drawLine(int* color,int y)
Danton 15:3bfbb557020e 56 {
Danton 37:836771aa9230 57 HX8340S_LCD lcd(p9, p14, p13, p11);
Danton 33:7154faa730e5 58 //lcd.Initialize();
allanalpha 42:1c682c42672c 59
Danton 33:7154faa730e5 60 scr=0;
Danton 35:ad5fa2b439ad 61 //printf("drawline\c\n");
Danton 35:ad5fa2b439ad 62 //lcd.FillScreen(COLOR_GREEN);
Danton 19:089c4027bfba 63 for(int i=0;i<220;i++)
Danton 19:089c4027bfba 64 {
Danton 34:451b67720e07 65 lcd.DrawPixel(i,y,color[i]);
Danton 35:ad5fa2b439ad 66 //printf("i=%d color=%x \n",i, (int)color[i]);
Danton 21:ed9ea3485f93 67
Danton 19:089c4027bfba 68 }
allanalpha 42:1c682c42672c 69 scr=1;
Danton 15:3bfbb557020e 70 }
Danton 21:ed9ea3485f93 71
allanalpha 41:c18e7c2b912a 72
Danton 0:a11b3a90c259 73 int main() {
Danton 6:ac9692245a01 74 printf("Hello Stinky World!\c\n");
allanalpha 42:1c682c42672c 75 //wait(5);
Danton 2:e205fa129def 76 //mkdir("/sd/mydir", 0777);
Danton 0:a11b3a90c259 77
Danton 15:3bfbb557020e 78
allanalpha 41:c18e7c2b912a 79 unsigned char rawbytes[880];
Danton 50:86df5e163b08 80 int color[220];
Danton 34:451b67720e07 81 unsigned int absPtr=54;
Danton 22:9e6c02d5f85d 82 superDisplay();
Danton 35:ad5fa2b439ad 83 for(int i=0;i<176;i++)
Danton 34:451b67720e07 84 {
allanalpha 41:c18e7c2b912a 85 pickUpLine(rawbytes,color,880,220,"/sd/mydir/rose.bmp",&absPtr);
Danton 34:451b67720e07 86 drawLine(color,i);
allanalpha 43:aae9babddc4d 87 //printf("absptr %d\n\n\n", absPtr);
Danton 34:451b67720e07 88 }
Danton 15:3bfbb557020e 89
Danton 0:a11b3a90c259 90 printf("Goodbye World!\c\n");
Danton 0:a11b3a90c259 91 }