S3C2440A WiinCE下CMOS驱动程序修改和摄像头应用程序
来源:互联网 发布:u deserve it 编辑:程序博客网 时间:2024/06/05 14:28
今日在处理Windows CE5.0下的s3c2440a摄像头相关程序,在网上找了很多资料,但是未免不全,经过这些天的总结,在驱动和应用程序处理的工程当中需要注意一下几个问题,在此列出,便于读者参考。
1、在Windows CE5.0当中,驱动和应用程序是分开的,虚拟内存的地址存在着很大的差异,因此不能直接用驱动中的RGB_ADRESS来直接获取RGB数据,驱动中CAM_IOCTL_SAMSUNG_CAM_PR命令不能用,这块就需要自己修改驱动程序,第一可以继续实现CAM_IOCTL_SAMSUNG_CAM_PR命令,第二可以实现CIS_Read函数。
2、摄像头的数据是RGB565格式的数据,如果采用RGB565转化的BMP数据进行显示,图片模糊且不清楚,因此建议将RGB565转化为RGB888数据进行显示,转化的代码如下;
#define RGB565_MASK_RED 0xF800
#define RGB565_MASK_GREEN 0x07E0
#define RGB565_MASK_BLUE 0x001F
unsigned short *pRGB16 = (unsigned short *)DDBdata;
for(int i=0; i unsigned short RGB16 = *pRGB16;
g_rgbbuf[i*3+2] = (RGB16&RGB565_MASK_RED) >> 11;
g_rgbbuf[i*3+1] = (RGB16&RGB565_MASK_GREEN) >> 5;
g_rgbbuf[i*3+0] = (RGB16&RGB565_MASK_BLUE);
g_rgbbuf[i*3+2] <<= 3;
g_rgbbuf[i*3+1] <<= 2;
g_rgbbuf[i*3+0] <<= 3;
pRGB16++;
}
3、在应用程序当中需要获取RGB数据,第一要从驱动中读取RGB数据,但是在这开始之前需要发送IOCTL_CAM_CONT,开始启动(Play)CMOS摄像头,才能获取数据。
只要注意以上三点,编写Windows CE5.0+S3C2440A下的CMOS驱动和摄像头应用程序都不存在问题。
- S3C2440A WiinCE下CMOS驱动程序修改和摄像头应用程序
- linux下的cmos摄像头驱动设计2-应用程序的调用与驱动程序的关系
- Linux下摄像头驱动程序spca5xx和gspca
- Windows CE S3C2440A下按键驱动程序编码分析
- CCD和CMOS摄像头的区别
- CCD和CMOS摄像头的区别
- CCD和CMOS摄像头的区别
- CMOS 摄像头的Skipping 和 Binning 模式
- CMOS 摄像头的Skipping 和 Binning 模式
- Samsung6410下OV5642摄像头驱动程序
- 模拟摄像头和cmos数字摄像头的切换
- VMWare和摄像头驱动程序冲突
- 摄像头驱动程序的开发修改和移植(针对嵌入式mini2440开发板)—开发文档
- CCD和CMOS摄像头成像原理以及其他区别
- CCD和CMOS摄像头成像原理以及其他区别
- CCD和CMOS摄像头成像原理以及其他区别
- TX2440 CMOS 摄像头驱动
- CMOS摄像头简单分析
- Toast 复杂布局 使用
- 理解I/O Completion Port
- 微软图表控件使用初探--数据绑定(交叉表)
- Solution for "The Key Management Service(KMS) is unavailable"
- Eff STL
- S3C2440A WiinCE下CMOS驱动程序修改和摄像头应用程序
- Chromium OS源代码下载
- 关于成员初始化参数列表的总结
- SDK关机
- C语言部分函数原型实现
- 编译错误之error C3861: “getline”: 找不到标识符
- Linux signal
- 住房公积金
- mysql 设置id的增长起始点