当前位置: 代码迷 >> WinCE >> 6410 CAMERA解决方法
  详细解决方案

6410 CAMERA解决方法

热度:204   发布时间:2016-04-28 13:00:02.0
6410 CAMERA
平台:S3C6410 + WinCE6.0

现象: 在三星官方BSP 原有CAMERA驱动的基础上进行修改,支持OV3640(300万像素)

  现在 preview :640x480 still:1024x768 是OK的,但是,当把still设为2048x1536时,就失败了。

  我不知道要如何配置pin。

  1024x768时的配置是:
//-------------------------------------------
  MAKE_STREAM_MODE_RGB565(DCAM_StreamMode_12, 1024,768, 16, 3);

  PDDInit()函数如下:
  m_pModeVideoFormat[STILL].pCsDataRangeVideo[0] = &DCAM_StreamMode_12;//&;//&;DCAM_StreamMode_10 DCAM_StreamMode_13 
  //用于拍照;//DCAM_StreamMode_14
  m_pModeVideoFormat[STILL].pCsDataRangeVideo[1] = &DCAM_StreamMode_8;
   
  CameraSetFormat()函数

  else if(BufferType == STILL_CAPTURE_BUFFER)
  {
  Still_Buffer.Width = width;
  Still_Buffer.Height = height;
  Still_Buffer.Format = format;

//--------------------------------set sensor data----
ModuleSetImageSize(XGA); //设置模组 1024 x 768输出
  //ModuleSetImageSize(QXGA);
//---------------------------------

  }

  ModuleWriteBlock()函数
  int ModuleWriteBlock()
  {
  int i;
  UCHAR BUF=0;
  UCHAR DataRead =0;
  RETAILMSG(0,(TEXT("+ModuleWriteBlock\n")));
  for(i=0; i<(sizeof(OV3640_YCbCr8bit)/3); i++)
  {
  HW_WriteRegisters(&OV3640_YCbCr8bit[i][0], 3);
  }
   
  ModuleSetImageSize(V640_480); //设置模组输出640x480
  RETAILMSG(0,(TEXT("-ModuleWriteBlock\n")));

  return TRUE;  
  }
  
//--------------------------------

  我尝试了很多,比如把m_pModeVideoFormat[STILL].pCsDataRangeVideo[0] = &DCAM_StreamMode_14
MAKE_STREAM_MODE_YV12(DCAM_StreamMode_14, 2048, -1536, 12, 3);但是,这样会崩溃。


 
 请教高手,当我要2048x1536 时,我该如何配置pin?
 在PDDInit()函数,我该如何设m_pModeVideoFormat[STILL].pCsDataRangeVideo[0] = ?
 
 




------解决方案--------------------
探讨
怎么个错误法,把你的错误贴出来,很有可能是内存不够引起。还有你的应用软件是有什么写的?若dshow的话,它要分配十个缓存传递给驱动。想想吧。30M内存被干掉了。
~~~~~~~

------解决方案--------------------
探讨
引用:
怎么个错误法,把你的错误贴出来,很有可能是内存不够引起。还有你的应用软件是有什么写的?若dshow的话,它要分配十个缓存传递给驱动。想想吧。30M内存被干掉了。
~~~~~~~

这个言过其实了吧,分配的缓存数量在dshow里面是可以设置的,一般不会设这么多
  相关解决方案