论坛元老
- 积分
- 5269
- 金钱
- 5269
- 注册时间
- 2015-11-5
- 在线时间
- 681 小时
|
80金钱
最近项目上要用到SDRAM作为LCD和emWin的缓存,SDRAM具体型号是ISSI-IS42S16400J-7TLI,大小为8MB,大概10块钱左右,后来发现8MB不够用(因为把图片全部加载到SDRAM里了,切换会更快,后续可能还要用矢量字体)。后来打算换SDRAM,缓存W9825G6KH-6,大小为32MB,就是原子哥的F429开发板上的那块,价格居然只要5块钱左右,这我就有点慌了……是这个SDRAM性能上有差吗?求大神们发表一下意见…… 另外,我切换一张1024*600分辨率的BMP图片需要120ms,肉眼可以看到图片切换过程(拉窗帘的感觉)。图片已经从FLASH拷到SDRAM里了,而且使用了emwin存储设备,这个120ms是GUI_MEMDEV_WriteAt(hMemBMP, 0, 0)这个函数的执行时间。GUI_BMP_Draw(PIC_BUFFER[num],x,y)这一句耗时1s。MCU用的是LPC1788,OS用的是FreeRTOS,有没有好一点的办法让刷图片快一点?具体的程序如下:
int XSize,YSize;
GUI_HMEM hMem;
GUI_MEMDEV_Handle hMemBMP;
XSize = GUI_BMP_GetXSize(PIC_BUFFER[num]); //获得图片的X轴大小
YSize = GUI_BMP_GetYSize(PIC_BUFFER[num]); //获得图片的Y轴大小
hMemBMP = GUI_MEMDEV_CreateEx(0, 0, XSize, YSize, GUI_MEMDEV_HASTRANS); //创建存储设备
GUI_MEMDEV_Select(hMemBMP); //选中存储设备
GUI_BMP_Draw(PIC_BUFFER[num],x,y); //将图片绘制到存储设备中,这行耗时1s,图片数据已经在PIC_BUFFER里了,这个数组定义在SDRAM里
GUI_MEMDEV_Select(0); //激活存储设备
GUI_MEMDEV_WriteAt(hMemBMP, 0, 0); //将图片显示到LCD上,这行耗时120ms
GUI_MEMDEV_Delete(hMemBMP); //删除存储设备
|
最佳答案
查看完整内容[请看2#楼]
1、SDRAM有刷新频率,这个应该是影响价格,SDARM用台湾的会便宜很多,SDRAM本来就是白菜价了;当然也可以测试下三星、海力士那些,也许会有差异,我就是从三星、海力士那些转用台湾的,因为实在太便宜了,而且性能又没什么差异,何乐不为;
2、W9825G6KH-6刷新频率最大是166MHz,但需要CPU支持;我用LPC4088(兼容LPC1788),SDRAM用的就是W9825G6KH-6,LPC4088最大只能支持120M的(和系时钟一致)的刷新频率,不过我用的是320*24 ...
|