سلام بر دوستان.
بنده حدود دو سه هفته*ای هست روی یه پروژه که بیشتر جنبه فان داره و هدف خاصی ازش ندارم کار می*کنم...
بعد از راه اندازی sdio و تاچ و ال سی دی و سوار کردن stemwin روی اون الان می*خوام از روی اس دی کارت یه عکس لود کنم و روی صفحه نشون بدم خارج از محیط emwin زیاد سخت نیست (فقط کافیه که آدرس ram درایور ال سی دی رو بهش بدم که توش کپی بشه. اما توی خود emwin یکم اوضاع پیچیده می*شه و به مشکل بر می*خورم.
این کدی هستش که خارج از emwin می*زنم:
برای نمایش عکس از حافظه خارجی توی emwin از دستور:
استفاده میشه که x0 و y0 نقطه*ای هستش که می*خوایم عکس از اونجا به بعد نمایش داده بشه و pfGetData تابعی هستش که قراره برامون حافظه رو بخونه و p هم اشاره*گر به مکانی هستش که عکس توی اون جا قرار گرفته.
از اونجایی که من عادت ندارم چیزا رو عمقی یاد بگیرم متوجه منظور این دو تا نمی*شم!! توی خود فروم segger هم پرسیدم و چنین جوابی بهم داد:
که زیاد متوجه منظورش نشدم...
حالا سوالم اینه که.. دوستان شما تجربه چنین کاری نداری؟ اگه هم ندارید.. متوجه شدید که باید چی کار کنم که کارم راه بیوفته؟
خیلی ممنون.
بنده حدود دو سه هفته*ای هست روی یه پروژه که بیشتر جنبه فان داره و هدف خاصی ازش ندارم کار می*کنم...
بعد از راه اندازی sdio و تاچ و ال سی دی و سوار کردن stemwin روی اون الان می*خوام از روی اس دی کارت یه عکس لود کنم و روی صفحه نشون بدم خارج از محیط emwin زیاد سخت نیست (فقط کافیه که آدرس ram درایور ال سی دی رو بهش بدم که توش کپی بشه. اما توی خود emwin یکم اوضاع پیچیده می*شه و به مشکل بر می*خورم.
این کدی هستش که خارج از emwin می*زنم:
FATFS myFATFS;
FIL myFILE;
UINT myBYTES;
FRESULT myRES;
char SDPath[4];
int size;
uint8_t* add = (uint8_t *)0xC0000000; // Some address of external SD
f_mount(&myFATFS, SDPath, 1);
f_open(&myFILE, "file.bmp", FA_READ);
size = f_size(&myFILE);
myRES = f_read(&myFILE, add, size, (UINT *)myBYTES); // read the file and copy it into the external SD RAM
f_close(&myFILE);
برای نمایش عکس از حافظه خارجی توی emwin از دستور:
GUI_BMP_DrawEx(GUI_GET_DATA_FUNC * pfGetData, void * p, int x0, int y0);
استفاده میشه که x0 و y0 نقطه*ای هستش که می*خوایم عکس از اونجا به بعد نمایش داده بشه و pfGetData تابعی هستش که قراره برامون حافظه رو بخونه و p هم اشاره*گر به مکانی هستش که عکس توی اون جا قرار گرفته.
از اونجایی که من عادت ندارم چیزا رو عمقی یاد بگیرم متوجه منظور این دو تا نمی*شم!! توی خود فروم segger هم پرسیدم و چنین جوابی بهم داد:
کد:
[COLOR=#666666][FONT=&]Hi,[/FONT][/COLOR] [COLOR=#666666][FONT=&]GUI_BMP_DrawEx() expects a pointer to a GetData function as first and the file handle as second parameter. The GetData function reads the file using the file handle, so that emWin can draw the BMP image with the data that was read.[/FONT][/COLOR] [COLOR=#666666][FONT=&]There is an example [/FONT][/COLOR][URL="https://wiki.segger.com/External_image_-_BMP_(Sample)"]in the wiki[/URL][COLOR=#666666][FONT=&] that demonstrates this. The example can be run in both the Windows simulation and on a target (using emFile).[/FONT][/COLOR] [COLOR=#666666][FONT=&]You can apply this example to the file system you are using, since the steps are the same. The code you posted should be moved into a GetData function. Then you can call GUI_BMP_DrawEx() and pass a pointer to that function and a pointer to your file handle.[/FONT][/COLOR] [COLOR=#666666][FONT=&]Best regards,[/FONT][/COLOR] [COLOR=#666666][FONT=&]Florian[/FONT][/COLOR]
حالا سوالم اینه که.. دوستان شما تجربه چنین کاری نداری؟ اگه هم ندارید.. متوجه شدید که باید چی کار کنم که کارم راه بیوفته؟
خیلی ممنون.
دیدگاه