基于S5PV210开发板裸机实现电子相册
2016-08-08 20:32
375 查看
一、项目描述
硬件平台:GEC210项目要求:在GEC210裸机上实现数码相册:
(1)程序运行时显示主界面:从上往下滚动显示程序介绍和使用说明(自己设计文字格式);
(2)按下K2键从主界面进入照片浏览模式:按下k3键前翻、k4键后翻,5秒内没有任何按键自动循环播放照片,5分钟没有任何按键则重回主界面;
(3)可以自行添加使界面更美观或使用更人性化的功能;
说明:照片格式采用image2lcd生成的带头部格式的文件,至少5副照片
二、设计思路
三、程序要点
1、字幕滚动利用LCD视窗(视口)相对于缓冲区移动,实现视窗滚动的效果。
局限于我还没学会控制窗口叠加,在这里我将LCD (800*480pixels) 分为两个窗口:
win1:大小 (40*480pixels) 位置 (0,0)->(39,479)
win0:大小 (760*480pixels) 位置 (40,0)->(799,479)
在win1中初始化视窗vid1,大小和win1一样,位置从win1的(0,0)开始。初始化时视窗取得缓冲区framebuffer的起始地址,视窗显示的结束地址设置为:framebuffer+视窗大小(字节数)。
之后在主函数中,通过循环使得rVIDW01ADD0B0以及rVIDW01ADD1B0每隔一段时间增加40*4(字节)即地址偏移到下一行,就可以实现滚动了。
2、看‘萌’狗
在主界面,我通过不断的循环喂狗避免发生看门狗中断。一旦按下K2键(或者其他按键按下)的话,我就喂最后一次狗 (5s) 就不理它了。直到5s钟后看门狗受不了发生中断,进入看门狗中断服务。
此时根据置位的中断标志wdt_flag,设计程序进行使LCD自动显示下一张照片(此时wdt_flag在结束的时候重新置0)。
由于之前我们没有喂狗,狗在快饿死的情况下 (WTCNT==0) ,自己跑去仓库 (WTDAT:保存重新装载计数初值2s) 中重新获得食物,继续等待下次中断发生。
每次发生看门狗中断都会触发LCD显示下一张图片(建议显示的程序体不要写在中断服务中,以免影响其他中断的响应),直到150个回合 (5分钟) 看门狗等到主人回来了,程序回到主界面,继续持续喂狗。
*注:由于调试需要,程序设计为20s回到主界面
3、第二缓冲区
在刷新显示图片的时候,如果直接往缓冲区buffer里面写入数据的话,会出现图片显示是扫描的方式显示的。因而可以借助第二缓冲区,先向第二缓冲区写入数据,待写入完全之后用函数memcpy(头文件:string.h)将第二缓冲区的数据拷贝到LCD缓冲区,这解决了图片刷新的视觉卡滞等问题。
四、程序源码
大家有兴趣去了解我的代码可以通过下面的云盘链接去下载,代码注释可能不是很明细,不过也不是很难理解。百度网盘:电子相册
密码:6tr2
相关文章推荐
- 基于mini2451开发板的裸机开发-电子相册
- 基于S5PV210开发板wince环境下如何调通wifi,实现其上网功能?
- 基于mini2440按键控制电子相册(裸机代码)
- 基于TQ2440的电子相册项目实现
- ARM裸机开发之基于S3C2451的电子相册开发
- 基于S3C2451的一个裸机电子相册
- 基于QT的电子相册设计与实现
- 在基于OMAP3530的DevKit8000开发板上实现Linux操作系统下的GPIO读写操作
- 基于OPhone SDK1.5的英文电子词典的实现
- 基于FRAMBUFFER 的电子相册
- S5PV210 Android 矩阵键盘驱动[基于x210开发板]
- 用SurfaceView,Timer以及Handler实现的一个带有音乐和文字的电子相册,可以自动播放~
- 实现基于Android的英文电子词典使用cursorAdapter
- RealARM开发板 TFTP下载内核和NFS挂载文件系统 基于S5PV210开发板
- S5PV210 Android 矩阵键盘驱动[基于x210开发板]
- s5pv210平台WCDMA模块[华为E1750]调试成功-基于x210ii开发板
- 基于三星ARM cortex-a8 S5PV210开发板中的最新力作Sin210腾空出世by芯灵思sinlinx
- 基于as3.0的简单版的相册[通过面向对象的思路实现]
- 在s5pv210开发板linux平台上移植mplayer--基于x210开发板
- 在s5pv210开发板的android平台上添加busybox的支持[基于x210开发板]