You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
206 lines
8.6 KiB
206 lines
8.6 KiB
2 years ago
|
/**
|
||
|
******************************************************************************
|
||
|
* @file ov5640.h
|
||
|
* @author MCD Application Team
|
||
|
* @brief This file contains all the functions prototypes for the ov5640.c
|
||
|
* driver.
|
||
|
******************************************************************************
|
||
|
* @attention
|
||
|
*
|
||
|
* <h2><center>© Copyright (c) 2019 STMicroelectronics.
|
||
|
* All rights reserved.</center></h2>
|
||
|
*
|
||
|
* This software component is licensed by ST under BSD 3-Clause license,
|
||
|
* the "License"; You may not use this file except in compliance with the
|
||
|
* License. You may obtain a copy of the License at:
|
||
|
* opensource.org/licenses/BSD-3-Clause
|
||
|
*
|
||
|
******************************************************************************
|
||
|
*/
|
||
|
|
||
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
||
|
#ifndef __OV5640_H
|
||
|
#define __OV5640_H
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/* Includes ------------------------------------------------------------------*/
|
||
|
#include "../Common/camera.h"
|
||
|
|
||
|
/** @addtogroup BSP
|
||
|
* @{
|
||
|
*/
|
||
|
|
||
|
/** @addtogroup Components
|
||
|
* @{
|
||
|
*/
|
||
|
|
||
|
/** @addtogroup ov5640
|
||
|
* @{
|
||
|
*/
|
||
|
|
||
|
/** @defgroup OV5640_Exported_Types
|
||
|
* @{
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
/** @defgroup OV5640_Exported_Constants
|
||
|
* @{
|
||
|
*/
|
||
|
/**
|
||
|
* @brief OV5640 ID
|
||
|
*/
|
||
|
#define OV5640_ID 0x5640
|
||
|
/**
|
||
|
* @brief OV5640 Registers
|
||
|
*/
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @brief OV5640 Features Parameters
|
||
|
*/
|
||
|
|
||
|
/* Brightness */
|
||
|
#define OV5640_BRIGHTNESS_LEVEL4P 0x00 /* Brightness level +4 */
|
||
|
#define OV5640_BRIGHTNESS_LEVEL3P 0x01 /* Brightness level +3 */
|
||
|
#define OV5640_BRIGHTNESS_LEVEL2P 0x02 /* Brightness level +2 */
|
||
|
#define OV5640_BRIGHTNESS_LEVEL1P 0x04 /* Brightness level +1 */
|
||
|
#define OV5640_BRIGHTNESS_LEVEL0 0x08 /* Brightness level 0 */
|
||
|
#define OV5640_BRIGHTNESS_LEVEL1N 0x10 /* Brightness level -1 */
|
||
|
#define OV5640_BRIGHTNESS_LEVEL2N 0x20 /* Brightness level -2 */
|
||
|
#define OV5640_BRIGHTNESS_LEVEL3N 0x40 /* Brightness level -3 */
|
||
|
#define OV5640_BRIGHTNESS_LEVEL4N 0x80 /* Brightness level -4 */
|
||
|
|
||
|
/* Saturation */
|
||
|
#define OV5640_SATURATION_LEVEL4P 0x00 /* Saturation level +4 */
|
||
|
#define OV5640_SATURATION_LEVEL3P 0x01 /* Saturation level +3 */
|
||
|
#define OV5640_SATURATION_LEVEL2P 0x02 /* Saturation level +2 */
|
||
|
#define OV5640_SATURATION_LEVEL1P 0x04 /* Saturation level +1 */
|
||
|
#define OV5640_SATURATION_LEVEL0 0x08 /* Saturation level 0 */
|
||
|
#define OV5640_SATURATION_LEVEL1N 0x10 /* Saturation level -1 */
|
||
|
#define OV5640_SATURATION_LEVEL2N 0x20 /* Saturation level -2 */
|
||
|
#define OV5640_SATURATION_LEVEL3N 0x40 /* Saturation level -3 */
|
||
|
#define OV5640_SATURATION_LEVEL4N 0x80 /* Saturation level -4 */
|
||
|
|
||
|
/* Contrast */
|
||
|
#define OV5640_CONTRAST_LEVEL4P 0x00 /* Contrast level +4 */
|
||
|
#define OV5640_CONTRAST_LEVEL3P 0x01 /* Contrast level +3 */
|
||
|
#define OV5640_CONTRAST_LEVEL2P 0x02 /* Contrast level +2 */
|
||
|
#define OV5640_CONTRAST_LEVEL1P 0x04 /* Contrast level +1 */
|
||
|
#define OV5640_CONTRAST_LEVEL0 0x08 /* Contrast level 0 */
|
||
|
#define OV5640_CONTRAST_LEVEL1N 0x10 /* Contrast level -1 */
|
||
|
#define OV5640_CONTRAST_LEVEL2N 0x20 /* Contrast level -2 */
|
||
|
#define OV5640_CONTRAST_LEVEL3N 0x40 /* Contrast level -3 */
|
||
|
#define OV5640_CONTRAST_LEVEL4N 0x80 /* Contrast level -4 */
|
||
|
|
||
|
|
||
|
/* Hue Control */
|
||
|
#define OV5640_HUE_150P 0x0001 /* Hue 150+ degree */
|
||
|
#define OV5640_HUE_120P 0x0002 /* Hue 120+ degree */
|
||
|
#define OV5640_HUE_90P 0x0004 /* Hue 90+ degree */
|
||
|
#define OV5640_HUE_60P 0x0008 /* Hue 60+ degree */
|
||
|
#define OV5640_HUE_30P 0x0010 /* Hue 30+ degree */
|
||
|
#define OV5640_HUE_0 0x0020 /* Hue 0 degree */
|
||
|
#define OV5640_HUE_30N 0x0040 /* Hue 30- degree */
|
||
|
#define OV5640_HUE_60N 0x0080 /* Hue 60- degree */
|
||
|
#define OV5640_HUE_90N 0x0100 /* Hue 90- degree */
|
||
|
#define OV5640_HUE_120N 0x0200 /* Hue 120- degree */
|
||
|
#define OV5640_HUE_150N 0x0400 /* Hue 150- degree */
|
||
|
#define OV5640_HUE_180N 0x0800 /* Hue 180- degree */
|
||
|
|
||
|
/* Mirror/Flip */
|
||
|
#define OV5640_MIRROR 0x00 /* Set camera mirror config */
|
||
|
#define OV5640_FLIP 0x01 /* Set camera flip config */
|
||
|
#define OV5640_MIRROR_FLIP 0x02 /* Set camera mirror and flip */
|
||
|
#define OV5640_MIRROR_FLIP_NORMAL 0x04 /* Set camera normal mode */
|
||
|
|
||
|
/* Zoom */
|
||
|
#define OV5640_ZOOM_x8 0x00
|
||
|
#define OV5640_ZOOM_x4 0x11
|
||
|
#define OV5640_ZOOM_x2 0x22
|
||
|
#define OV5640_ZOOM_x1 0x44
|
||
|
|
||
|
/* Special Effect */
|
||
|
#define OV5640_COLOR_EFFECT_NONE 0x00 /* No effect */
|
||
|
#define OV5640_COLOR_EFFECT_BLUE 0x01 /* Blue effect */
|
||
|
#define OV5640_COLOR_EFFECT_RED 0x02 /* Red effect */
|
||
|
#define OV5640_COLOR_EFFECT_GREEN 0x04 /* Green effect */
|
||
|
#define OV5640_COLOR_EFFECT_BW 0x08 /* Black and White effect */
|
||
|
#define OV5640_COLOR_EFFECT_SEPIA 0x10 /* Sepia effect */
|
||
|
#define OV5640_COLOR_EFFECT_NEGATIVE 0x20 /* Negative effect */
|
||
|
#define OV5640_COLOR_EFFECT_BW_NEGATIVE 0x40 /* BW Negative effect */
|
||
|
#define OV5640_COLOR_EFFECT_OVEREXPOSURE 0x80 /* Over exposure effect */
|
||
|
#define OV5640_COLOR_EFFECT_SOLARIZE 0x100 /* Solarized effect */
|
||
|
|
||
|
/* Light Mode */
|
||
|
#define OV5640_LIGHT_AUTO 0x00 /* Light Mode Auto */
|
||
|
#define OV5640_LIGHT_SUNNY 0x01 /* Light Mode Sunny */
|
||
|
#define OV5640_LIGHT_OFFICE 0x02 /* Light Mode Office */
|
||
|
#define OV5640_LIGHT_HOME 0x04 /* Light Mode Home */
|
||
|
#define OV5640_LIGHT_CLOUDY 0x08 /* Light Mode Claudy */
|
||
|
|
||
|
/* Saturation */
|
||
|
#define OV5640_SATURATION_0 0x00 /* Color saturation 0 */
|
||
|
#define OV5640_SATURATION_1 0x01 /* Color saturation 1 */
|
||
|
#define OV5640_SATURATION_2 0x02 /* Color saturation 2 */
|
||
|
#define OV5640_SATURATION_3 0x04 /* Color saturation 3 */
|
||
|
|
||
|
/* Exposure */
|
||
|
#define OV5640_EXPOSURE_LEVEL_0 0x00 /* Exposure Level 0 */
|
||
|
#define OV5640_EXPOSURE_LEVEL_1 0x01 /* Exposure Level 1 */
|
||
|
#define OV5640_EXPOSURE_LEVEL_2 0x02 /* Exposure Level 2 */
|
||
|
#define OV5640_EXPOSURE_LEVEL_3 0x04 /* Exposure Level 3 */
|
||
|
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
/** @defgroup OV5640_Exported_Functions
|
||
|
* @{
|
||
|
*/
|
||
|
void ov5640_Init(uint16_t DeviceAddr, uint32_t resolution);
|
||
|
void ov5640_Config(uint16_t DeviceAddr, uint32_t feature, uint32_t value, uint32_t BR_value);
|
||
|
uint16_t ov5640_ReadID(uint16_t DeviceAddr);
|
||
|
void OV5640_SetLightMode(uint16_t DeviceAddr, uint8_t LightMode);
|
||
|
void OV5640_SetEffect(uint16_t DeviceAddr, uint32_t Effect);
|
||
|
void OV5640_SetBrightness(uint16_t DeviceAddr, uint8_t Level);
|
||
|
void OV5640_SetSaturation(uint16_t DeviceAddr, uint8_t Level);
|
||
|
void OV5640_SetContrast(uint16_t DeviceAddr, uint8_t Level);
|
||
|
void OV5640_SetHueDegree(uint16_t DeviceAddr, uint16_t Degree);
|
||
|
void OV5640_MirrorFlipConfig(uint16_t DeviceAddr, uint8_t Config);
|
||
|
void OV5640_ZoomConfig(uint16_t DeviceAddr, uint8_t Zoom);
|
||
|
int32_t OV5640_GetResolution(uint16_t DeviceAddr);
|
||
|
void CAMERA_IO_Init(void);
|
||
|
void CAMERA_IO_Write(uint8_t addr, uint16_t reg, uint16_t value);
|
||
|
uint16_t CAMERA_IO_Read(uint8_t Addr, uint16_t Reg);
|
||
|
void CAMERA_Delay(uint32_t delay);
|
||
|
|
||
|
/* CAMERA driver structure */
|
||
|
extern CAMERA_DrvTypeDef ov5640_drv;
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* __OV5640_H */
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* @}
|
||
|
*/
|
||
|
|
||
|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|