cauqleuir madre

Dependencies:   SDFileSystem mbed TFTLCD

Committer:
Danton
Date:
Sat Feb 02 04:39:21 2013 +0000
Revision:
39:52539bea375c
Parent:
38:7a646be3854c
Child:
40:72ed373557ea
resotred seek_set

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"
Danton 21:ed9ea3485f93 4 void superDisplay()
Danton 21:ed9ea3485f93 5 {
Danton 21:ed9ea3485f93 6 HX8340S_LCD lcd( p9, p14, p13, p11);
Danton 21:ed9ea3485f93 7 lcd.Initialize();
Danton 21:ed9ea3485f93 8 lcd.ClearScreen();
Danton 28:4a233bc57aab 9 lcd.FillScreen(COLOR_BLUE);
Danton 35:ad5fa2b439ad 10 //printf("superDisplay\c\n");
Danton 21:ed9ea3485f93 11 }
Danton 21:ed9ea3485f93 12 void superSd(unsigned char*buffer,int offset,int bytes,const char *path)
Danton 15:3bfbb557020e 13 {
Danton 22:9e6c02d5f85d 14 printf("superSD\c\n");
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 }
Danton 15:3bfbb557020e 21 //fprintf(fp, "Hello fun SD Card World!\c\n");
Danton 15:3bfbb557020e 22 //fread ( void * ptr, size_t size, size_t count, FILE * stream );
Danton 36:810bd3eb129c 23 printf("offset at ssd %d\n",offset);
Danton 39:52539bea375c 24 fseek(fp, offset,SEEK_SET);
Danton 38:7a646be3854c 25 fread((char*)buffer,1,bytes,fp);
Danton 38:7a646be3854c 26 for(int i=0; i<bytes;i++)
Danton 38:7a646be3854c 27 {
Danton 38:7a646be3854c 28 printf("%x ",buffer[i]);
Danton 38:7a646be3854c 29 }
Danton 38:7a646be3854c 30 printf("\n");
Danton 15:3bfbb557020e 31 fclose(fp);
Danton 15:3bfbb557020e 32
Danton 15:3bfbb557020e 33 }
Danton 21:ed9ea3485f93 34 void colorCompute(unsigned char*buffer, unsigned int* colorBuffer,int offset,int sizeOfBuffer)
Danton 21:ed9ea3485f93 35 {
Danton 35:ad5fa2b439ad 36 //printf("ColorCompute\c\n");
Danton 26:dd8e83feefb9 37 int aux= sizeOfBuffer+offset;
Danton 27:bae83e4c9fce 38 int j=offset;
Danton 27:bae83e4c9fce 39 for(int i=i;i<sizeOfBuffer;i=i+4)
Danton 21:ed9ea3485f93 40 {
Danton 35:ad5fa2b439ad 41 //printf("%d ",i);
Danton 27:bae83e4c9fce 42 colorBuffer[j]=buffer[i]<<16+buffer[i+1]<<8+buffer[i+2];
Danton 27:bae83e4c9fce 43 j++;
Danton 21:ed9ea3485f93 44 }
Danton 35:ad5fa2b439ad 45 //printf("\n");
Danton 21:ed9ea3485f93 46 }
Danton 34:451b67720e07 47 void pickUpLine(unsigned char*buffer, unsigned int* colorBuffer,int sizeOfBuffer,int sizeOfLine,const char *path, int absPtr)
Danton 21:ed9ea3485f93 48 {
Danton 22:9e6c02d5f85d 49 printf("Pickupline\c\n");
Danton 34:451b67720e07 50 int i =absPtr;
Danton 25:b81df542785e 51 int delta=20;
Danton 21:ed9ea3485f93 52 for(int j=0;j<sizeOfLine;j=j+delta)
Danton 21:ed9ea3485f93 53 {
Danton 21:ed9ea3485f93 54 superSd(buffer,i,sizeOfBuffer,path);
Danton 24:1acd0368a592 55 printf("byteofFile%d, pixelnum %d, delta %d",i,j,delta);
Danton 21:ed9ea3485f93 56 colorCompute(buffer,colorBuffer,j,sizeOfBuffer);
Danton 21:ed9ea3485f93 57 i=i+delta;
Danton 21:ed9ea3485f93 58 }
Danton 21:ed9ea3485f93 59
Danton 21:ed9ea3485f93 60 }
Danton 21:ed9ea3485f93 61 void drawLine(unsigned int* color,int y)
Danton 15:3bfbb557020e 62 {
Danton 37:836771aa9230 63 HX8340S_LCD lcd(p9, p14, p13, p11);
Danton 33:7154faa730e5 64 //lcd.Initialize();
Danton 33:7154faa730e5 65 DigitalOut scr(p9);
Danton 33:7154faa730e5 66 scr=0;
Danton 35:ad5fa2b439ad 67 //printf("drawline\c\n");
Danton 35:ad5fa2b439ad 68 //lcd.FillScreen(COLOR_GREEN);
Danton 19:089c4027bfba 69 for(int i=0;i<220;i++)
Danton 19:089c4027bfba 70 {
Danton 34:451b67720e07 71 lcd.DrawPixel(i,y,color[i]);
Danton 35:ad5fa2b439ad 72 //printf("i=%d color=%x \n",i, (int)color[i]);
Danton 21:ed9ea3485f93 73
Danton 19:089c4027bfba 74 }
Danton 15:3bfbb557020e 75 }
Danton 21:ed9ea3485f93 76
Danton 21:ed9ea3485f93 77 /*void drawScreen(unsigned char*buffer,unsigned int* colorBuffer,int sizeOfBuffer,int sizeOfLine,const char *path)
Danton 21:ed9ea3485f93 78 {
Danton 21:ed9ea3485f93 79 for(int i=0; i<176;i++)
Danton 21:ed9ea3485f93 80 {
Danton 21:ed9ea3485f93 81 pickUpLine
Danton 21:ed9ea3485f93 82 }
Danton 21:ed9ea3485f93 83 }
Danton 21:ed9ea3485f93 84 */
Danton 0:a11b3a90c259 85 int main() {
Danton 6:ac9692245a01 86 printf("Hello Stinky World!\c\n");
Danton 0:a11b3a90c259 87
Danton 2:e205fa129def 88 //mkdir("/sd/mydir", 0777);
Danton 0:a11b3a90c259 89
Danton 15:3bfbb557020e 90
Danton 21:ed9ea3485f93 91 unsigned char rawbytes[80];
Danton 21:ed9ea3485f93 92 unsigned int color[220];
Danton 34:451b67720e07 93 unsigned int absPtr=54;
Danton 22:9e6c02d5f85d 94 superDisplay();
Danton 35:ad5fa2b439ad 95 for(int i=0;i<176;i++)
Danton 34:451b67720e07 96 {
Danton 34:451b67720e07 97 pickUpLine(rawbytes,color,80,220,"/sd/mydir/rose.bmp",absPtr);
Danton 34:451b67720e07 98 drawLine(color,i);
Danton 36:810bd3eb129c 99 absPtr=absPtr+880;
Danton 38:7a646be3854c 100 printf("absptr %d\n\n\n", absPtr);
Danton 34:451b67720e07 101 }
Danton 15:3bfbb557020e 102
Danton 0:a11b3a90c259 103 printf("Goodbye World!\c\n");
Danton 0:a11b3a90c259 104 }