سلام
یه تابعی درست کردم که یه عکس از صفحه نمایش tft میگیره و با فرمت BMP 16 بیت در مکان دلخواه شما ذخیره میکنه.
خوب اگر از lcd 3.2 اینچی استفاده میکنید معمولا تابع tftlcd_read_pixel (خواندن پیکسل) اون نمایشی است و باید تابع
زیر رو در هدر tft 3.2 اینچی بجای tftlcd_read_pixel کپی کنید تا درست شود:
[code=c]unsigned short tftlcd_read_pixel(u16 x,u16 y)
{
wr_cmd (0x4F);
wr_dat (x);
wr_cmd (0x4E);
wr_dat (y);
tftlcd_set_cursor(x,y);
LCD_CS(0)
wr_cmd(0x22);
return rd_dat();
}[/code]
خوب بعد از این کار ما نیاز به 70 بایت اول یک فایل BMP در اندازه lcd و 16 بیت نیاز داریم که میتونید کد زیر رو که برای
lcd در اندازه های 320*240 ساختم استفاده کنید و اونو به پروژه تون قبل از main تعریف کنید:
[code=c]const unsigned char bmp[]={
0x42,0x4d,0x48,0x58,0x02,0x00,0x00,0x00,
0x00,0x00,0x46,0x00,0x00,0x00,0x38,0x00,
0x00,0x00,0xf0,0x00,0x00,0x00,0x40,0x01,
0x00,0x00,0x01,0x00,0x10,0x00,0x03,0x00,
0x00,0x00,0x02,0x58,0x02,0x00,0x12,0x0b,
0x00,0x00,0x12,0x0b,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,
0x00,0x00,0xe0,0x07,0x00,0x00,0x1f,0x00,
0x00,0x00,0x00,0x00,0x00,0x00
};[/code]
تا حالا تقریبا کار تمومه و حالا بعد از اضافه کردن کتابخانه rl-arm که برای راه اندازی mmc و sd کارت هست
(آموزش کار با این کتابخونه در همین انجمن توضیح داده شده است و برای اطلاعات بیشتر به مجله نویز 8 مراجعه کنید)
نوبت به اضافه کردن تابع زیر که کار اون ایجاد فایل BMP و ریختن اطلاعات در اونه میرسیم:
[code=c]void tftlcd_screenshot(char *name)
{
short x,y,i;
FILE *f;
f = fopen(name,"w"
;
for(i=0;i<70;i++){
fputc(bmp[i],f);
}
for(y=319;y>=0;y--)
for(x=0;x<240;x++)
{
fputc(tftlcd_read_pixel(x,y),f);
fputc(tftlcd_read_pixel(x,y)>>8,f);
}
fputc(0,f);
fputc(0,f);
fclose(f);
}[/code]
برای استفاده از تابع بالا کافیه تا در main بعد از init کردن lcd و مموری کارت از کد زیر استفاده کنید:
[code=c]tftlcd_screenshot("M:\\New folder\\pic1.bmp"
;[/code]
این هم چند نمونه تصویر های گرفته شده از lcd 3.2 اینچی با lpc1768 :
http://alidehghan288.persiangig.com/image/001.BMP
http://alidehghan288.persiangig.com/image/002.BMP
(توجه: تصاویر بالا را با دانلود منیجر دانلود کنید و با ویندوز مشاهده کنید چون بعضی از مرور گر ها قابلیت باز کردن تصاویر رو نداردند)
یه تابعی درست کردم که یه عکس از صفحه نمایش tft میگیره و با فرمت BMP 16 بیت در مکان دلخواه شما ذخیره میکنه.
خوب اگر از lcd 3.2 اینچی استفاده میکنید معمولا تابع tftlcd_read_pixel (خواندن پیکسل) اون نمایشی است و باید تابع
زیر رو در هدر tft 3.2 اینچی بجای tftlcd_read_pixel کپی کنید تا درست شود:
[code=c]unsigned short tftlcd_read_pixel(u16 x,u16 y)
{
wr_cmd (0x4F);
wr_dat (x);
wr_cmd (0x4E);
wr_dat (y);
tftlcd_set_cursor(x,y);
LCD_CS(0)
wr_cmd(0x22);
return rd_dat();
}[/code]
خوب بعد از این کار ما نیاز به 70 بایت اول یک فایل BMP در اندازه lcd و 16 بیت نیاز داریم که میتونید کد زیر رو که برای
lcd در اندازه های 320*240 ساختم استفاده کنید و اونو به پروژه تون قبل از main تعریف کنید:
[code=c]const unsigned char bmp[]={
0x42,0x4d,0x48,0x58,0x02,0x00,0x00,0x00,
0x00,0x00,0x46,0x00,0x00,0x00,0x38,0x00,
0x00,0x00,0xf0,0x00,0x00,0x00,0x40,0x01,
0x00,0x00,0x01,0x00,0x10,0x00,0x03,0x00,
0x00,0x00,0x02,0x58,0x02,0x00,0x12,0x0b,
0x00,0x00,0x12,0x0b,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,
0x00,0x00,0xe0,0x07,0x00,0x00,0x1f,0x00,
0x00,0x00,0x00,0x00,0x00,0x00
};[/code]
تا حالا تقریبا کار تمومه و حالا بعد از اضافه کردن کتابخانه rl-arm که برای راه اندازی mmc و sd کارت هست
(آموزش کار با این کتابخونه در همین انجمن توضیح داده شده است و برای اطلاعات بیشتر به مجله نویز 8 مراجعه کنید)
نوبت به اضافه کردن تابع زیر که کار اون ایجاد فایل BMP و ریختن اطلاعات در اونه میرسیم:
[code=c]void tftlcd_screenshot(char *name)
{
short x,y,i;
FILE *f;
f = fopen(name,"w"

for(i=0;i<70;i++){
fputc(bmp[i],f);
}
for(y=319;y>=0;y--)
for(x=0;x<240;x++)
{
fputc(tftlcd_read_pixel(x,y),f);
fputc(tftlcd_read_pixel(x,y)>>8,f);
}
fputc(0,f);
fputc(0,f);
fclose(f);
}[/code]
برای استفاده از تابع بالا کافیه تا در main بعد از init کردن lcd و مموری کارت از کد زیر استفاده کنید:
[code=c]tftlcd_screenshot("M:\\New folder\\pic1.bmp"

این هم چند نمونه تصویر های گرفته شده از lcd 3.2 اینچی با lpc1768 :
http://alidehghan288.persiangig.com/image/001.BMP
http://alidehghan288.persiangig.com/image/002.BMP
(توجه: تصاویر بالا را با دانلود منیجر دانلود کنید و با ویندوز مشاهده کنید چون بعضی از مرور گر ها قابلیت باز کردن تصاویر رو نداردند)