cauqleuir madre

Dependencies:   SDFileSystem mbed TFTLCD

main.cpp

Committer:
Danton
Date:
2013-02-02
Revision:
47:295031bba3c2
Parent:
46:bad7d98b0ff8
Child:
48:7dd4cbb0e6c2

File content as of revision 47:295031bba3c2:

#include "mbed.h"
#include "SDFileSystem.h"
#include "hx8340bs.h"
DigitalOut scr(p9);
void superDisplay()
{
    HX8340S_LCD lcd( p9, p14, p13, p11);
    lcd.Initialize();
    lcd.ClearScreen();
    //lcd.FillScreen(COLOR_BLUE);
    //printf("superDisplay\c\n");
}
void superSd(unsigned char*buffer,unsigned 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(path, "r");
   
    if(fp == NULL) {
        error("Could not open file\c\n");
    }
    //printf("offset at ssd %d\n",*offset);
    fseek(fp, *offset,SEEK_SET);
    *offset=*offset+bytes;
    fread((char*)buffer,1,bytes,fp);
    //printf("\n");
    fclose(fp); 
     
}
void colorCompute(unsigned char*buffer, unsigned int* colorBuffer,int sizeOfBuffer)
{
    int j=0;
    for(int i=0;i<sizeOfBuffer;i=i+4)
    {
        
        colorBuffer[j]=RGB(buffer[i]|0xf0,buffer[i+1],buffer[i+2]);
        //colorBuffer[j]=((buffer[i]<<11)&0xf800)+((buffer[i+1]<<6)&0x7e0)+((buffer[i+2]>>3)&0x1F);
        //colorBuffer[j]=(0xff<<16)+(0x00<<8)+(0x00);
        //colorBuffer[j]=0xFFFFFF;
        //printf("%d ,%d ",j,colorBuffer[j]);
        j++;
    }
    //printf("\n");
}
void pickUpLine(unsigned char*buffer, unsigned int* colorBuffer,int sizeOfBuffer,int sizeOfLine,const char *path, unsigned int *absPtr)
{
    //printf("Pickupline\n");
    superSd(buffer,absPtr,sizeOfBuffer,path);
   // printf("byteofFile%d, pixelnum %d, delta %d",*absPtr,j,delta);
    colorCompute(buffer,colorBuffer,sizeOfBuffer);
        //i=i+delta;
    
    //printf("\n");
}
void drawLine(unsigned int* color,int y)
{
    HX8340S_LCD lcd(p9, p14, p13, p11);
    //lcd.Initialize();
    
    scr=0;
    //printf("drawline\c\n");
    //lcd.FillScreen(COLOR_GREEN);
    for(int i=0;i<220;i++)
    {
        lcd.DrawPixel(i,y,color[i]);
        //printf("i=%d color=%x \n",i, (int)color[i]);
        
    }
    scr=1;
}


int main() {
    printf("Hello Stinky World!\c\n");    
    //wait(5);
    //mkdir("/sd/mydir", 0777);
    
    
    unsigned char rawbytes[880];
    unsigned int color[220];
    unsigned int absPtr=54;
    superDisplay();
    for(int i=0;i<176;i++)
    {
        pickUpLine(rawbytes,color,880,220,"/sd/mydir/rose.bmp",&absPtr);
        drawLine(color,i);
        //printf("absptr %d\n\n\n", absPtr);
    }

    printf("Goodbye World!\c\n");
}