From 044ad7c3987460ede48ff27afd6bdb0ca05a0432 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 4 Jul 2011 20:52:54 +0200 Subject: import at91lib from at91lib_20100901_softpack_1_9_v_1_0_svn_v15011 it's sad to see that atmel doesn't publish their svn repo or has a centralized location or even puts proper version/release info into the library itself --- components/omnivision/ov2640/ov2640.c | 143 ++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 components/omnivision/ov2640/ov2640.c (limited to 'components/omnivision/ov2640/ov2640.c') diff --git a/components/omnivision/ov2640/ov2640.c b/components/omnivision/ov2640/ov2640.c new file mode 100644 index 0000000..ccb10e2 --- /dev/null +++ b/components/omnivision/ov2640/ov2640.c @@ -0,0 +1,143 @@ +// ---------------------------------------------------------------------------- +// ATMEL Microcontroller Software Support - ROUSSET - +// ---------------------------------------------------------------------------- +// Copyright (c) 2009, Atmel Corporation +// +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// - Redistributions of source code must retain the above copyright notice, +// this list of conditions and the disclaimer below. +// +// Atmel's name may not be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR +// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE +// DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// ---------------------------------------------------------------------------- + +#include + +#if defined(BOARD_CAPTOR_OV2640) + +//------------------------------------------------------------------------------ +/// \unit +/// +/// !!!Purpose +/// +/// Specific configuration for Omnivision OV2640 captor +/// +/// !!!Usage +/// +/// -# Different files are been provided by Omnivision: +/// - 2640_yuv_cif.h +/// - 2640_yuv_qcif.h +/// - 2640_yuv_qqcif.h +/// - 2640_yuv_qqvga.h +/// - 2640_yuv_qvga.h +/// - 2640_yuv_sxga.h +/// - 2640_yuv_vga.h +/// -# Configure the captor using theses files +//-------------------------------------------------------------------------- + + +//----------------------------------------------------------------------------- +// Headers +//----------------------------------------------------------------------------- +#include +#include + +#include + +#include "2640_yuv_cif.h" +#include "2640_yuv_qvga.h" +#include "2640_yuv_sxga.h" +#include "2640_yuv_vga.h" + +//------------------------------------------------------------------------------ +/// Array of image sizes supported by OV264x +//------------------------------------------------------------------------------ +const static struct capture_size ov264x_sizes[] = { +// {width, height} + /// QVGA + { 320, 240 }, + /// CIF + { 352, 288 }, + /// VGA + { 640, 480 }, + /// SXGA + {1280, 1024 } +}; + +//------------------------------------------------------------------------------ +// Global Functions +//------------------------------------------------------------------------------ + +//----------------------------------------------------------------------------- +/// Configure the OV9650 for a specified image size, pixel format, +/// and frame period. +//----------------------------------------------------------------------------- +void ov_configure(Twid *pTwid, unsigned int width, unsigned int heigth) +{ + const struct ov_reg *reg_conf; + unsigned char goodCaptureSize = 0; + unsigned char i; + + TRACE_DEBUG("ov264x_configure\n\r"); + for( i=0; i