cauqleuir madre
Dependencies: SDFileSystem mbed TFTLCD
main.cpp@54:fb5ebfbaeea5, 2013-02-02 (annotated)
- Committer:
- Danton
- Date:
- Sat Feb 02 14:58:54 2013 +0000
- Revision:
- 54:fb5ebfbaeea5
- Parent:
- 53:1f52e8ac3f7c
- Child:
- 55:b6e70eb4276c
lcd
Who changed what in which revision?
User | Revision | Line number | New 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 | 53:1f52e8ac3f7c | 8 | lcd.Initialize(LANDSCAPE,RGB24); |
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 | 54:fb5ebfbaeea5 | 36 | colorBuffer[j]=RGB((buffer[i]),buffer[i+1],(buffer[i+2]>1)); |
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 | } |