Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem mbed TFTLCD
main.cpp
- Committer:
- Danton
- Date:
- 2013-02-02
- Revision:
- 29:1e98e8fc32da
- Parent:
- 28:4a233bc57aab
- Child:
- 30:629d2bdf5a52
File content as of revision 29:1e98e8fc32da:
#include "mbed.h"
#include "SDFileSystem.h"
#include "hx8340bs.h"
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,int offset,int bytes,const char *path)
{
printf("superSD\c\n");
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");
}
//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,bytes,fp);
fclose(fp);
}
void colorCompute(unsigned char*buffer, unsigned int* colorBuffer,int offset,int sizeOfBuffer)
{
printf("ColorCompute\c\n");
int aux= sizeOfBuffer+offset;
int j=offset;
for(int i=i;i<sizeOfBuffer;i=i+4)
{
printf("%d ",i);
colorBuffer[j]=buffer[i]<<16+buffer[i+1]<<8+buffer[i+2];
j++;
}
printf("\n");
}
void pickUpLine(unsigned char*buffer, unsigned int* colorBuffer,int sizeOfBuffer,int sizeOfLine,const char *path)
{
printf("Pickupline\c\n");
int i =54;
int delta=20;
for(int j=0;j<sizeOfLine;j=j+delta)
{
superSd(buffer,i,sizeOfBuffer,path);
printf("byteofFile%d, pixelnum %d, delta %d",i,j,delta);
colorCompute(buffer,colorBuffer,j,sizeOfBuffer);
i=i+delta;
}
}
void drawLine(unsigned int* color,int y)
{
HX8340S_LCD lcd( p9, p14, p13, p11);
printf("drawline\c\n");
for(int i=0;i<220;i++)
{
//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]);
printf("i=%d color=%x \n",i, 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 rawbytes[80];
unsigned int color[220];
superDisplay();
pickUpLine(rawbytes,color,80,220,"/sd/mydir/rose.bmp");
drawLine(color,0);
printf("Goodbye World!\c\n");
}
