cauqleuir madre

Dependencies:   SDFileSystem mbed TFTLCD

Revision:
21:ed9ea3485f93
Parent:
20:1a28bf5b1d95
Child:
22:9e6c02d5f85d
diff -r 1a28bf5b1d95 -r ed9ea3485f93 main.cpp
--- a/main.cpp	Sat Feb 02 01:32:51 2013 +0000
+++ b/main.cpp	Sat Feb 02 02:24:57 2013 +0000
@@ -1,11 +1,16 @@
 #include "mbed.h"
 #include "SDFileSystem.h"
 #include "hx8340bs.h"
-
-void superSd(unsigned char*buffer,int offset,const char *path)
+void superDisplay()
+{
+    HX8340S_LCD lcd( p9, p14, p13, p11);
+    lcd.Initialize();
+    lcd.ClearScreen();
+}
+void superSd(unsigned char*buffer,int offset,int bytes,const char *path)
 {
      SDFileSystem sd(p11, p12, p13, p8, "sd"); // the pinout on the mbed Cool Components workshop board
-     FILE *fp =fopen("/sd/mydir/rose.bmp", "r");
+     FILE *fp =fopen(path, "r");
    
     if(fp == NULL) {
         error("Could not open file\c\n");
@@ -13,76 +18,77 @@
     //fprintf(fp, "Hello fun SD Card World!\c\n");
     //fread ( void * ptr, size_t size, size_t count, FILE * stream );
     fseek(fp, offset,SEEK_SET);
-    fread((char*)buffer,1,100,fp);
+    fread((char*)buffer,1,bytes,fp);
     fclose(fp); 
      
 }
-void superDisplay(unsigned char*buffer,int offset,const char *path)
+void colorCompute(unsigned char*buffer, unsigned int* colorBuffer,int offset,int sizeOfBuffer)
+{
+    for(int i=offset;i<sizeOfBuffer+offset;i=i+4)
+    {
+        colorBuffer[i]=buffer[i]<<16+buffer[i+1]<<8+buffer[i+2];
+    }
+}
+void pickUpLine(unsigned char*buffer, unsigned int* colorBuffer,int sizeOfBuffer,int sizeOfLine,const char *path)
+{
+    int i =54;
+    int delta=sizeOfLine/(sizeOfBuffer/4);
+    for(int j=0;j<sizeOfLine;j=j+delta)
+    {
+        superSd(buffer,i,sizeOfBuffer,path);
+        colorCompute(buffer,colorBuffer,j,sizeOfBuffer);
+        i=i+delta;
+    }
+    
+}
+void drawLine(unsigned int* color,int y)
 {
     HX8340S_LCD lcd( p9, p14, p13, p11);
-    lcd.Initialize();
-    lcd.ClearScreen();
-    lcd.FillScreen(COLOR_BLUE); 
-    lcd.Print(path, CENTER, 25 );
     for(int i=0;i<220;i++)
     {
-        lcd.DrawPixel(i,0,0xFFFFFF);
-        lcd.DrawPixel(i,1,0xFFFFFF);
-        lcd.DrawPixel(i,2,0xFFFFFF);
-        lcd.DrawPixel(i,3,0xFFFFFF);
-        lcd.DrawPixel(i,4,0xFFFFFF);
-        lcd.DrawPixel(i,5,0xFFFFFF);
-        lcd.DrawPixel(i,6,0xFFFFFF);
-        lcd.DrawPixel(i,7,0xFFFFFF);
-        lcd.DrawPixel(i,8,0xFFFFFF);
-        lcd.DrawPixel(i,9,0xFFFFFF);
-        lcd.DrawPixel(i,10,0xFFFFFF);
-        lcd.DrawPixel(i,11,0xFFFFFF);
-        lcd.DrawPixel(i,12,0xFFFFFF);
-        lcd.DrawPixel(i,13,0xFFFFFF);
-        lcd.DrawPixel(i,14,0xFFFFFF);
-        lcd.DrawPixel(i,15,0xFFFFFF);
-        lcd.DrawPixel(i,16,0xFFFFFF);
-        lcd.DrawPixel(i,17,0xFFFFFF);
-        lcd.DrawPixel(i,18,0xFFFFFF);
-        lcd.DrawPixel(i,19,0xFFFFFF);
-        lcd.DrawPixel(i,20,0xFFFFFF);
-        lcd.DrawPixel(i,21,0xFFFFFF);
-        lcd.DrawPixel(i,22,0xFFFFFF);
-        lcd.DrawPixel(i,23,0xFFFFFF);
-        lcd.DrawPixel(i,24,0xFFFFFF);
-        lcd.DrawPixel(i,25,0xFFFFFF);
-        lcd.DrawPixel(i,26,0xFFFFFF);
-        lcd.DrawPixel(i,27,0xFFFFFF);
-        lcd.DrawPixel(i,28,0xFFFFFF);
-        lcd.DrawPixel(i,29,0xFFFFFF);
+        //lcd.DrawPixel(i,y,color[i]);
+        lcd.DrawPixel(i,0,color[i]);
+        lcd.DrawPixel(i,1,color[i]);
+        lcd.DrawPixel(i,2,color[i]);
+        lcd.DrawPixel(i,3,color[i]);
+        lcd.DrawPixel(i,4,color[i]);
+        lcd.DrawPixel(i,5,color[i]);
+        lcd.DrawPixel(i,5,color[i]);
+        lcd.DrawPixel(i,6,color[i]);
+        lcd.DrawPixel(i,7,color[i]);
+        lcd.DrawPixel(i,9,color[i]);
+        lcd.DrawPixel(i,10,color[i]);
+        lcd.DrawPixel(i,11,color[i]);
+        lcd.DrawPixel(i,12,color[i]);
+        lcd.DrawPixel(i,13,color[i]);
+        lcd.DrawPixel(i,14,color[i]);
+        lcd.DrawPixel(i,15,color[i]);
+        lcd.DrawPixel(i,15,color[i]);
+        lcd.DrawPixel(i,16,color[i]);
+        lcd.DrawPixel(i,17,color[i]);
+        lcd.DrawPixel(i,19,color[i]);
+        
     }
 }
- 
+
+/*void drawScreen(unsigned char*buffer,unsigned int* colorBuffer,int sizeOfBuffer,int sizeOfLine,const char *path)
+{
+    for(int i=0; i<176;i++)
+    {
+        pickUpLine
+    }
+}
+ */
 int main() {
     printf("Hello Stinky World!\c\n");    
  
     //mkdir("/sd/mydir", 0777);
     
     
-    unsigned char bitmap[100];
-    int i=0;
-    superSd(bitmap,0,"/sd/mydir/rose.bmp");
-    while(i<100)
-    {
-        printf("%c",bitmap[i]);
-        i++;
-    }
-    superDisplay(bitmap,0,"Hola imbecil");
-    superSd(bitmap,100,"/sd/mydir/rose.bmp");
-    i=0;
-    printf("\n\n\n\n");
-    while(i<100)
-    {
-        printf("%c",bitmap[i]);
-        i++;
-    }
-    superDisplay(bitmap,100,"Whats the != between 1&2");
+    unsigned char rawbytes[80];
+    unsigned int color[220];
+    pickUpLine(rawbytes,color,80,220,"/sd/mydir/rose.bmp");
+    drawLine(color,0);
 
     printf("Goodbye World!\c\n");
 }
\ No newline at end of file