- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于CortexM3的SD卡 片浏览器
4 模块化测试
整个系统采用模块化的设计,利用μC/OSII操作系统进行任务管理。以任务Task_BMP为例,对24位真彩色BMP位图的显示进行测试,程序如下:
Task_BMP{
f_mount(0, &fs);
res = f_open(&fsrc, "ab.BMP", FA_OPEN_EXISTING | FA_READ);
res = f_read(&fsrc, &bmp, sizeof(bmp), &br);
if((bmp.pic_head[0]==‘B’)&&(bmp.pic_head[1]==‘M’)){//用文件头判断是否为BMP文件
res= f_lseek(&fsrc,((bmp.pic_data_address_h《《16)|bmp.pic_data_address_l));//采用了Windows的BMP格式,BMP原点在左下角
for(tx= bmp.pic_h_l;tx》0;tx--){
f_read(&fsrc, buffer, (bmp.pic_w_l)*3, &br);
for(ty=0;ty《bmp.pic_w_l;ty++){
r_data = *(ty*3 +2+buffer);
g_data = *(ty*3 +1+buffer);
b_data = *(ty*3 +0+buffer);
if(tx《bmp.pic_h_l){
point.x = tx;
point.y = ty;
point.r = r_data;
point.g = g_data;
point.b = b_data;
pixelDraw(point.y ,point.x,RGB888ToRGB565(point.r,point.g,point.b));//24位转换成TFT支持的16位并显示
}
}
}
}
f_close(&fsrc);
}
结语
本文提出了一种嵌入式图片浏览器的设计思路,以模块化的方法完成了设计过程,可方便地根据应用需求完善解码库的设计,使其能够在实际平台上良好地运行。本设计基本达到了预期效果,虽然不能作为一种通用图片浏览器的方案,但在需要用到图片解码器的GPS、手持PDA、远程监控系统设计上仍然具有一定的参考价值。
1 2
上一篇:无线手持磁条卡信息终端设计
下一篇:漫步“云端”的EDA,云计算时代的机遇和挑战