Sync inav to Gitea
Make sure docs are updated / settings_md (push) Canceled after 0s
Build firmware / test (push) Canceled after 0s
Build firmware / build-SITL-Windows (push) Canceled after 0s
Build firmware / build-SITL-Mac (push) Canceled after 0s
Build firmware / build-SITL-Linux (push) Canceled after 0s
Build firmware / build-SITL-Linux-arm64 (push) Canceled after 0s
Build firmware / upload-artifacts (push) Canceled after 0s
Build firmware / build-single-target (push) Canceled after 0s
Build firmware / build (9) (push) Canceled after 0s
Build firmware / build (8) (push) Canceled after 0s
Build firmware / build (7) (push) Canceled after 0s
Build firmware / build (6) (push) Canceled after 0s
Build firmware / build (5) (push) Canceled after 0s
Build firmware / build (4) (push) Canceled after 0s
Build firmware / build (3) (push) Canceled after 0s
Build firmware / build (2) (push) Canceled after 0s
Build firmware / build (14) (push) Canceled after 0s
Build firmware / build (13) (push) Canceled after 0s
Build firmware / build (12) (push) Canceled after 0s
Build firmware / build (11) (push) Canceled after 0s
Build firmware / build (10) (push) Canceled after 0s
Build firmware / build (1) (push) Canceled after 0s
Build firmware / build (0) (push) Canceled after 0s
Build firmware / detect (push) Canceled after 0s
Build pre-release / build (push) Canceled after 0s
Build pre-release / Release (push) Canceled after 0s
Make sure docs are updated / settings_md (push) Canceled after 0s
Build firmware / test (push) Canceled after 0s
Build firmware / build-SITL-Windows (push) Canceled after 0s
Build firmware / build-SITL-Mac (push) Canceled after 0s
Build firmware / build-SITL-Linux (push) Canceled after 0s
Build firmware / build-SITL-Linux-arm64 (push) Canceled after 0s
Build firmware / upload-artifacts (push) Canceled after 0s
Build firmware / build-single-target (push) Canceled after 0s
Build firmware / build (9) (push) Canceled after 0s
Build firmware / build (8) (push) Canceled after 0s
Build firmware / build (7) (push) Canceled after 0s
Build firmware / build (6) (push) Canceled after 0s
Build firmware / build (5) (push) Canceled after 0s
Build firmware / build (4) (push) Canceled after 0s
Build firmware / build (3) (push) Canceled after 0s
Build firmware / build (2) (push) Canceled after 0s
Build firmware / build (14) (push) Canceled after 0s
Build firmware / build (13) (push) Canceled after 0s
Build firmware / build (12) (push) Canceled after 0s
Build firmware / build (11) (push) Canceled after 0s
Build firmware / build (10) (push) Canceled after 0s
Build firmware / build (1) (push) Canceled after 0s
Build firmware / build (0) (push) Canceled after 0s
Build firmware / detect (push) Canceled after 0s
Build pre-release / build (push) Canceled after 0s
Build pre-release / Release (push) Canceled after 0s
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
---
|
||||
name: 'Bug report'
|
||||
about: 'Create a report to help us improve the quality of our software'
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
---
|
||||
|
||||
**Caution**
|
||||
|
||||
The Issues are strictly limited for the reporting of problem encountered with the software provided in this project.
|
||||
For any other problem related to the STM32 product, the performance, the hardware characteristics and boards, the tools the environment in general, please post your report to the **ST Community** in the STM32 MCUs dedicated [page](https://community.st.com/s/group/0F90X000000AXsASAW/stm32-mcus).
|
||||
|
||||
**Describe the set-up**
|
||||
|
||||
* The board (either ST RPN reference or your custom board)
|
||||
* IDE or at least the compiler and its version
|
||||
|
||||
**Describe the bug (skip if none)**
|
||||
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**How to reproduce the bug (skip if none)**
|
||||
|
||||
1. Indicate the global behavior of your application project
|
||||
2. List the modules that you suspect to be the cause of the problem (Drivers, BSP, MW...)
|
||||
3. Describe the use case that generates the problem
|
||||
4. How we can reproduce the problem
|
||||
|
||||
|
||||
**Additional context**
|
||||
|
||||
If you have a first analysis, an enhancement, a fix or a patch, thank you to share your proposal.
|
||||
|
||||
**Screenshots**
|
||||
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
## IMPORTANT INFORMATION
|
||||
|
||||
Pull-requests are **not** accepted on this repository. Please use issues to report any bug or request.
|
||||
@@ -0,0 +1,73 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team via this [link](https://www.st.com/content/st_com/en/contact-us.html).
|
||||
All complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4,
|
||||
available [here](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html).
|
||||
|
||||
For answers to common questions about this code of conduct, see the [FAQ section](https://www.contributor-covenant.org/faq).
|
||||
@@ -0,0 +1,28 @@
|
||||
## Contributing guide
|
||||
|
||||
This document serves as a checklist before contributing to this repository.
|
||||
It includes links to read up on if topics are unclear to you.
|
||||
|
||||
This guide mainly focuses on steps to be followed to submit an issue or a pull-request.
|
||||
|
||||
### 1. Before opening an issue
|
||||
|
||||
To report a bug or a request please file an issue in the right repository
|
||||
(example for [ov9655](https://github.com/STMicroelectronics/ov9655/issues/new/choose)).
|
||||
|
||||
Please check the following boxes before posting an issue:
|
||||
- [ ] `Make sure you are using the latest commit (major releases are tagged, but corrections are available as new commits).`
|
||||
- [ ] `Make sure your issue is a question/feedback/suggestions RELATED TO the software provided in this repository.` Otherwise, it should be submitted to the ST Community under the MCU topic [page](https://community.st.com/s/group/0F90X000000AXsASAW/stm32-mcus).
|
||||
- [ ] `Make sure your issue is not already reported/fixed on GitHub or discussed on a previous issue.` Please refer to this [dashboard](https://github.com/orgs/STMicroelectronics/projects/2) for the list of issues and pull-requests. Do not forget to browse into the **closed** issues.
|
||||
|
||||
### 2. Posting the issue
|
||||
When you have checked the previous boxes. You will find two templates (Bug Report or Other Issue) available in the **Issues** tab of the repository.
|
||||
|
||||
### 3. Pull Requests
|
||||
Pull-requests are **not** accepted on this repository. Please use **issues** to report any bug or request.
|
||||
|
||||
### 4. How to proceed
|
||||
|
||||
* We recommend to engage first a communication thru an issue, in order to present your proposal. Just to confirm that it corresponds to STMicroelectronics domain or scope.
|
||||
* Then fork the project to your GitHub account to further develop your contribution. Please use the latest commit version.
|
||||
* Please, submit one Pull Request for one new feature or proposal. This will ease the analysis and the final merge if accepted.
|
||||
@@ -0,0 +1,3 @@
|
||||
# Copyright (c) 2015 STMicroelectronics
|
||||
|
||||
This software component is licensed by STMicroelectronics under the **BSD-3-Clause** license. You may not use this software except in compliance with this license. You may obtain a copy of the license [here](https://opensource.org/licenses/BSD-3-Clause).
|
||||
@@ -0,0 +1,40 @@
|
||||
# BSP OV9655 Component
|
||||
|
||||
## Overview
|
||||
|
||||
**STM32Cube** is an STMicroelectronics original initiative to ease the developers life by reducing efforts, time and cost.
|
||||
|
||||
**STM32Cube** covers the overall STM32 products portfolio. It includes a comprehensive embedded software platform delivered for each STM32 series.
|
||||
* The CMSIS modules (core and device) corresponding to the ARM(tm) core implemented in this STM32 product.
|
||||
* The STM32 HAL-LL drivers, an abstraction layer offering a set of APIs ensuring maximized portability across the STM32 portfolio.
|
||||
* The BSP drivers of each evaluation, demonstration or nucleo board provided for this STM32 series.
|
||||
* A consistent set of middleware components such as RTOS, USB, FatFS, graphics, touch sensing library...
|
||||
* A full set of software projects (basic examples, applications, and demonstrations) for each board provided for this STM32 series.
|
||||
|
||||
Two models of publication are proposed for the STM32Cube embedded software:
|
||||
* The monolithic **MCU Package**: all STM32Cube software modules of one STM32 series are present (Drivers, Middleware, Projects, Utilities) in the repository (usual name **STM32Cubexx**, xx corresponding to the STM32 series).
|
||||
* The **MCU component**: each STM32Cube software module being part of the STM32Cube MCU Package, is delivered as an individual repository, allowing the user to select and get only the required software functions.
|
||||
|
||||
## Description
|
||||
|
||||
This **ov9655** MCU component repository is one element **common to all** STM32Cube MCU embedded software packages, providing the **OV9655** BSP CAMERA component part.
|
||||
|
||||
## License
|
||||
|
||||
Copyright (c) 2015 STMicroelectronics
|
||||
|
||||
This software component is licensed by STMicroelectronics under the **BSD-3-Clause** license. You may not use this software except in compliance with this license. You may obtain a copy of the license [here](https://opensource.org/licenses/BSD-3-Clause).
|
||||
|
||||
## Release note
|
||||
|
||||
Details about the content of this release are available in the release note [here](https://htmlpreview.github.io/?https://github.com/STMicroelectronics/ov9655/blob/main/Release_Notes.html).
|
||||
|
||||
## Compatibility information
|
||||
|
||||
Please refer to the repository of the BSP **board** driver you are using to know which version of this BSP component driver to use. It is **crucial** that you use a consistent set of versions. It is **crucial** that you use a consistent set of versions as indicated.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If you have any issue with the **software content** of this repository, you can file an issue [here](https://github.com/STMicroelectronics/ov9655/issues/new/choose).
|
||||
|
||||
For any other question related to the product, the tools, the environment, you can submit a topic to the [ST Community](https://community.st.com/s/).
|
||||
@@ -0,0 +1,130 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="generator" content="pandoc" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||||
<title>Release Notes for OV9655 Component Driver</title>
|
||||
<style type="text/css">
|
||||
code{white-space: pre-wrap;}
|
||||
span.smallcaps{font-variant: small-caps;}
|
||||
span.underline{text-decoration: underline;}
|
||||
div.column{display: inline-block; vertical-align: top; width: 50%;}
|
||||
</style>
|
||||
<link rel="stylesheet" href="_htmresc/mini-st.css" />
|
||||
<!--[if lt IE 9]>
|
||||
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-lg-4">
|
||||
<div class="card fluid">
|
||||
<div class="sectione dark">
|
||||
<center>
|
||||
<h1 id="release-notes-for-ov9655-component-driver"><strong>Release Notes for OV9655 Component Driver</strong></h1>
|
||||
<p>Copyright © 2019 STMicroelectronics<br />
|
||||
</p>
|
||||
<a href="https://www.st.com" class="logo"><img src="_htmresc/st_logo.png" alt="ST logo" /></a>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
<h1 id="license">License</h1>
|
||||
This software component is licensed by ST under BSD 3-Clause license, the “License”; You may not use this component except in compliance with the License. You may obtain a copy of the License at:
|
||||
<center>
|
||||
<a href="https://opensource.org/licenses/BSD-3-Clause">https://opensource.org/licenses/BSD-3-Clause</a>
|
||||
</center>
|
||||
<h1 id="purpose">Purpose</h1>
|
||||
<p>This driver provides a set of camera functions offered by OV9655 component</p>
|
||||
</div>
|
||||
<div class="col-sm-12 col-lg-8">
|
||||
<h1 id="update-history">Update History</h1>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section5" checked aria-hidden="true"> <label for="collapse-section5" aria-hidden="true"><strong>V2.2.0 / 15-December-2020</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes">Main Changes</h2>
|
||||
<ul>
|
||||
<li>Fix Mirror/Flip setting in OV9655_MirrorFlipConfig API:
|
||||
<ul>
|
||||
<li>Clear Bit[4:5] corresponding to mirror/flip selection before applaying the new configuration</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2 id="backward-compatibility">Backward Compatibility</h2>
|
||||
<ul>
|
||||
<li>None</li>
|
||||
</ul>
|
||||
<h2 id="dependencies">Dependencies</h2>
|
||||
<p>This software release is compatible with:</p>
|
||||
<ul>
|
||||
<li>BSP Common v6.0.0 or above</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section4" aria-hidden="true"> <label for="collapse-section4" aria-hidden="true"><strong>V2.1.0 / 30-September-2020</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes-1">Main Changes</h2>
|
||||
<ul>
|
||||
<li>Fix pixel format setting in OV9655_SetPixelFormat API:
|
||||
<ul>
|
||||
<li>Clear Bit[0:1] corresponding to pixel format selection before applaying the new configuration</li>
|
||||
<li>Update registers TSLB and COMMON15 required for setting YUV format</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2 id="backward-compatibility-1">Backward Compatibility</h2>
|
||||
<ul>
|
||||
<li>None</li>
|
||||
</ul>
|
||||
<h2 id="dependencies-1">Dependencies</h2>
|
||||
<p>This software release is compatible with:</p>
|
||||
<ul>
|
||||
<li>BSP Common v6.0.0 or above</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true"><strong>V2.0.0 / 30-October-2019</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes-2">Main Changes</h2>
|
||||
<ul>
|
||||
<li>First Official Release version of OV9655 Camera sensor Component in line with STM32Cube BSP drivers development guidelines (UM2298)</li>
|
||||
<li>The component drivers are composed of
|
||||
<ul>
|
||||
<li>component core drivers files: ov9655.h/.c</li>
|
||||
<li>component register drivers files: ov9655_regs.h/.c</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2 id="backward-compatibility-2">Backward Compatibility</h2>
|
||||
<p>This version breaks the compatibility with previous versions</p>
|
||||
<h2 id="dependencies-2">Dependencies</h2>
|
||||
<p>This software release is compatible with:</p>
|
||||
<ul>
|
||||
<li>BSP Common v6.0.0 or above</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true"><strong>V1.0.1 / 07-April-2017</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes-3">Main Changes</h2>
|
||||
<ul>
|
||||
<li>Update comments to be used for PDSC generation</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="collapse">
|
||||
<input type="checkbox" id="collapse-section1" aria-hidden="true"> <label for="collapse-section1" aria-hidden="true"><strong>V1.0.0 / 25-June-2015</strong></label>
|
||||
<div>
|
||||
<h2 id="main-changes-4">Main Changes</h2>
|
||||
<ul>
|
||||
<li>First official release of <strong>OV9655</strong> Camera sensor driver</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="sticky">
|
||||
For complete documentation on <mark>STM32 Microcontrollers</mark> , visit: <span style="font-color: blue;"><a href="http://www.st.com/STM32">www.st.com</a></span>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,215 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file ov9655.h
|
||||
* @author MCD Application Team
|
||||
* @brief This file contains all the functions prototypes for the ov9655.c
|
||||
* driver.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2015 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 OV9655_H
|
||||
#define OV9655_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "ov9655_reg.h"
|
||||
#include <stddef.h>
|
||||
|
||||
/** @addtogroup BSP
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup Components
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup ov9655
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @defgroup OV9655_Exported_Types Exported Types
|
||||
* @{
|
||||
*/
|
||||
|
||||
typedef int32_t (*OV9655_Init_Func) (void);
|
||||
typedef int32_t (*OV9655_DeInit_Func) (void);
|
||||
typedef int32_t (*OV9655_GetTick_Func) (void);
|
||||
typedef int32_t (*OV9655_Delay_Func) (uint32_t);
|
||||
typedef int32_t (*OV9655_WriteReg_Func)(uint16_t, uint16_t, uint8_t*, uint16_t);
|
||||
typedef int32_t (*OV9655_ReadReg_Func) (uint16_t, uint16_t, uint8_t*, uint16_t);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
OV9655_Init_Func Init;
|
||||
OV9655_DeInit_Func DeInit;
|
||||
uint16_t Address;
|
||||
OV9655_WriteReg_Func WriteReg;
|
||||
OV9655_ReadReg_Func ReadReg;
|
||||
OV9655_GetTick_Func GetTick;
|
||||
} OV9655_IO_t;
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
OV9655_IO_t IO;
|
||||
ov9655_ctx_t Ctx;
|
||||
uint8_t IsInitialized;
|
||||
} OV9655_Object_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t Config_Resolution;
|
||||
uint32_t Config_LightMode;
|
||||
uint32_t Config_SpecialEffect;
|
||||
uint32_t Config_Brightness;
|
||||
uint32_t Config_Saturation;
|
||||
uint32_t Config_Contrast;
|
||||
uint32_t Config_HueDegree;
|
||||
uint32_t Config_MirrorFlip;
|
||||
uint32_t Config_Zoom;
|
||||
uint32_t Config_NightMode;
|
||||
} OV9655_Capabilities_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int32_t (*Init )(OV9655_Object_t*, uint32_t, uint32_t);
|
||||
int32_t (*DeInit )(OV9655_Object_t*);
|
||||
int32_t (*ReadID )(OV9655_Object_t*, uint32_t*);
|
||||
int32_t (*GetCapabilities )(OV9655_Object_t*, OV9655_Capabilities_t*);
|
||||
int32_t (*SetLightMode )(OV9655_Object_t*, uint32_t);
|
||||
int32_t (*SetColorEffect )(OV9655_Object_t*, uint32_t);
|
||||
int32_t (*SetBrightness )(OV9655_Object_t*, int32_t);
|
||||
int32_t (*SetSaturation )(OV9655_Object_t*, int32_t);
|
||||
int32_t (*SetContrast )(OV9655_Object_t*, int32_t);
|
||||
int32_t (*SetHueDegree )(OV9655_Object_t*, int32_t);
|
||||
int32_t (*MirrorFlipConfig )(OV9655_Object_t*, uint32_t);
|
||||
int32_t (*ZoomConfig )(OV9655_Object_t*, uint32_t);
|
||||
int32_t (*SetResolution )(OV9655_Object_t*, uint32_t);
|
||||
int32_t (*GetResolution )(OV9655_Object_t*, uint32_t*);
|
||||
int32_t (*SetPixelFormat )(OV9655_Object_t*, uint32_t);
|
||||
int32_t (*GetPixelFormat )(OV9655_Object_t*, uint32_t*);
|
||||
int32_t (*NightModeConfig )(OV9655_Object_t*, uint32_t);
|
||||
}OV9655_CAMERA_Drv_t;
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup OV9655_Exported_Constants Exported Constants
|
||||
* @{
|
||||
*/
|
||||
#define OV9655_OK (0)
|
||||
#define OV9655_ERROR (-1)
|
||||
/**
|
||||
* @brief OV9655 Features Parameters
|
||||
*/
|
||||
/* Camera resolutions */
|
||||
#define OV9655_R160x120 0x00U /* QQVGA Resolution */
|
||||
#define OV9655_R320x240 0x01U /* QVGA Resolution */
|
||||
#define OV9655_R480x272 0x02U /* 480x272 Resolution: Not
|
||||
supported */
|
||||
#define OV9655_R640x480 0x03U /* VGA Resolution */
|
||||
|
||||
/* Camera Pixel Format */
|
||||
#define OV9655_RGB565 0x00U /* Pixel Format RGB565 */
|
||||
#define OV9655_RGB888 0x01U /* Pixel Format RGB888:
|
||||
Not supported */
|
||||
#define OV9655_YUV422 0x02U /* Pixel Format YUV422 */
|
||||
|
||||
/* Mirror/Flip */
|
||||
#define OV9655_MIRROR_FLIP_NONE 0x00U /* Set camera normal mode */
|
||||
#define OV9655_FLIP 0x01U /* Set camera flip config */
|
||||
#define OV9655_MIRROR 0x02U /* Set camera mirror config */
|
||||
#define OV9655_MIRROR_FLIP 0x03U /* Set camera mirror and flip */
|
||||
|
||||
/* Zoom */
|
||||
#define OV9655_ZOOM_x8 0x00U /* Set zoom to x8 */
|
||||
#define OV9655_ZOOM_x4 0x11U /* Set zoom to x4 */
|
||||
#define OV9655_ZOOM_x2 0x22U /* Set zoom to x2 */
|
||||
#define OV9655_ZOOM_x1 0x44U /* Set zoom to x1 */
|
||||
|
||||
/* Special Effect */
|
||||
#define OV9655_COLOR_EFFECT_NONE 0x00U /* No effect */
|
||||
#define OV9655_COLOR_EFFECT_BLUE 0x01U /* Blue effect */
|
||||
#define OV9655_COLOR_EFFECT_RED 0x02U /* Red effect */
|
||||
#define OV9655_COLOR_EFFECT_GREEN 0x04U /* Green effect */
|
||||
#define OV9655_COLOR_EFFECT_BW 0x08U /* Black and White effect */
|
||||
#define OV9655_COLOR_EFFECT_SEPIA 0x10U /* Sepia effect */
|
||||
#define OV9655_COLOR_EFFECT_NEGATIVE 0x20U /* Negative effect */
|
||||
|
||||
|
||||
/* Light Mode */
|
||||
#define OV9655_LIGHT_AUTO 0x00U /* Light Mode Auto */
|
||||
#define OV9655_LIGHT_SUNNY 0x01U /* Light Mode Sunny */
|
||||
#define OV9655_LIGHT_OFFICE 0x02U /* Light Mode Office */
|
||||
#define OV9655_LIGHT_HOME 0x04U /* Light Mode Home */
|
||||
#define OV9655_LIGHT_CLOUDY 0x08U /* Light Mode Claudy */
|
||||
|
||||
/* Night Mode */
|
||||
#define NIGHT_MODE_DISABLE 0x00U /* Disable night mode */
|
||||
#define NIGHT_MODE_ENABLE 0x01U /* Enable night mode */
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup OV9655_Exported_Functions OV9655 Exported Functions
|
||||
* @{
|
||||
*/
|
||||
int32_t OV9655_RegisterBusIO (OV9655_Object_t *pObj, OV9655_IO_t *pIO);
|
||||
int32_t OV9655_Init(OV9655_Object_t *pObj, uint32_t Resolution, uint32_t PixelFormat);
|
||||
int32_t OV9655_DeInit(OV9655_Object_t *pObj);
|
||||
int32_t OV9655_ReadID(OV9655_Object_t *pObj, uint32_t *Id);
|
||||
int32_t OV9655_GetCapabilities(OV9655_Object_t *pObj, OV9655_Capabilities_t *Capabilities);
|
||||
int32_t OV9655_SetLightMode(OV9655_Object_t *pObj, uint32_t LightMode);
|
||||
int32_t OV9655_SetColorEffect(OV9655_Object_t *pObj, uint32_t Effect);
|
||||
int32_t OV9655_SetBrightness(OV9655_Object_t *pObj, int32_t Level);
|
||||
int32_t OV9655_SetSaturation(OV9655_Object_t *pObj, int32_t Level);
|
||||
int32_t OV9655_SetContrast(OV9655_Object_t *pObj, int32_t Level);
|
||||
int32_t OV9655_SetHueDegree(OV9655_Object_t *pObj, int32_t Degree);
|
||||
int32_t OV9655_MirrorFlipConfig(OV9655_Object_t *pObj, uint32_t Config);
|
||||
int32_t OV9655_ZoomConfig(OV9655_Object_t *pObj, uint32_t Zoom);
|
||||
int32_t OV9655_SetResolution(OV9655_Object_t *pObj, uint32_t Resolution);
|
||||
int32_t OV9655_GetResolution(OV9655_Object_t *pObj, uint32_t *Resolution);
|
||||
int32_t OV9655_SetPixelFormat(OV9655_Object_t *pObj, uint32_t PixelFormat);
|
||||
int32_t OV9655_GetPixelFormat(OV9655_Object_t *pObj, uint32_t *PixelFormat);
|
||||
int32_t OV9655_NightModeConfig(OV9655_Object_t *pObj, uint32_t Cmd);
|
||||
|
||||
/* CAMERA driver structure */
|
||||
extern OV9655_CAMERA_Drv_t OV9655_CAMERA_Driver;
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* OV9655_H */
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file ov9655_reg.c
|
||||
* @author MCD Application Team
|
||||
* @brief This file provides unitary register function to control the OV9655
|
||||
* Camera driver.
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2015 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
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "ov9655_reg.h"
|
||||
|
||||
/** @addtogroup BSP
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup Components
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup OV9655
|
||||
* @brief This file provides a set of functions needed to drive the
|
||||
* OV9655 Camera codec.
|
||||
* @{
|
||||
*/
|
||||
|
||||
/************** Generic Function *******************/
|
||||
/*******************************************************************************
|
||||
* Function Name : ov9655_read_reg
|
||||
* Description : Generic Reading function. It must be fullfilled with either
|
||||
* I2C or SPI reading functions
|
||||
* Input : Register Address, length of buffer
|
||||
* Output : Data Read
|
||||
*******************************************************************************/
|
||||
int32_t ov9655_read_reg(ov9655_ctx_t *ctx, uint16_t reg, uint8_t *pdata, uint16_t length)
|
||||
{
|
||||
return ctx->ReadReg(ctx->handle, reg, pdata, length);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : OV9655_Write_Reg
|
||||
* Description : Generic Writing function. It must be fullfilled with either
|
||||
* I2C or SPI writing function
|
||||
* Input : Register Address, Data to be written, length of buffer
|
||||
* Output : None
|
||||
*******************************************************************************/
|
||||
int32_t ov9655_write_reg(ov9655_ctx_t *ctx, uint16_t reg, uint8_t *data, uint16_t length)
|
||||
{
|
||||
return ctx->WriteReg(ctx->handle, reg, data, length);
|
||||
}
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
@@ -0,0 +1,257 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file ov9655_reg.h
|
||||
* @author MCD Application Team
|
||||
* @brief Header of ov9655_reg.c
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2015 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 OV9655_REG_H
|
||||
#define OV9655_REG_H
|
||||
|
||||
#include <cmsis_compiler.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
/** @addtogroup BSP
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup Components
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup OV9655
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @defgroup OV9655_Exported_Types
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/** @defgroup OV9655_Exported_Constants OV9655 Exported Constants
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief OV9655 ID
|
||||
*/
|
||||
#define OV9655_ID 0x9656U
|
||||
#define OV9655_ID_2 0x9657U
|
||||
/**
|
||||
* @brief OV9655 Registers
|
||||
*/
|
||||
#define OV9655_GAIN_CTRL 0x00U
|
||||
#define OV9655_AWB_BLUE_GAIN_CTRL 0x01U
|
||||
#define OV9655_AWB_RED_GAIN_CTRL 0x02U
|
||||
#define OV9655_VERTIVCAL_FRAME_CTRL 0x03U
|
||||
#define OV9655_COMMON_CTRL1 0x04U
|
||||
#define OV9655_UB_AVERAGE_LEVEL 0x05U
|
||||
#define OV9655_YGB_AVERAGE_LEVEL 0x06U
|
||||
#define OV9655_GR_AVERAGE_LEVEL 0x07U
|
||||
#define OV9655_VR_AVERAGE_LEVEL 0x08U
|
||||
#define OV9655_COMMON_CTRL2 0x09U
|
||||
#define OV9655_PID_NUMBER_HIGH 0x0AU
|
||||
#define OV9655_PID_NUMBER_LOW 0x0BU
|
||||
#define OV9655_COMMON_CTRL3 0x0CU
|
||||
#define OV9655_COMMON_CTRL4 0x0DU
|
||||
#define OV9655_COMMON_CTRL5 0x0EU
|
||||
#define OV9655_COMMON_CTRL6 0x0FU
|
||||
#define OV9655_EXPOSURE_VALUE 0x10U
|
||||
#define OV9655_INTERNAL_CLOCK 0x11U
|
||||
#define OV9655_COMMON_CTRL7 0x12U
|
||||
#define OV9655_COMMON_CTRL8 0x13U
|
||||
#define OV9655_COMMON_CTRL9 0x14U
|
||||
#define OV9655_COMMON_CTRL10 0x15U
|
||||
#define OV9655_REG16_CTRL 0x16U
|
||||
#define OV9655_HORIZONTAL_FRAME_START 0x17U
|
||||
#define OV9655_HORIZONTAL_FRAME_STOP 0x18U
|
||||
#define OV9655_VERTICAL_FRAME_START 0x19U
|
||||
#define OV9655_VERTICAL_FRAME_STOP 0x1AU
|
||||
#define OV9655_PSHFT 0x1BU
|
||||
#define OV9655_MANUFACTURER_ID_HIGH 0x1CU
|
||||
#define OV9655_MANUFACTURER_ID_LOW 0x1DU
|
||||
#define OV9655_MIRROR_VFLIP 0x1EU
|
||||
#define OV9655_LAEC 0x1FU /* Reserved */
|
||||
#define OV9655_BOS 0x20U /* B Channel ADBLC Result: Offset adjustment sign */
|
||||
#define OV9655_GBOS 0x21U /* GB Channel ADBLC Result: Offset adjustment sign */
|
||||
#define OV9655_GROS 0x22U /* GR Channel ADBLC Result: Offset adjustment sign */
|
||||
#define OV9655_ROS 0x23U /* R Channel ADBLC Result: Offset adjustment sign */
|
||||
#define OV9655_AEW 0x24U /* AGC/AEC - Stable Operating Region (Upper Limit) */
|
||||
#define OV9655_AEB 0x25U /* AGC/AEC - Stable Operating Region (Lower Limit) */
|
||||
#define OV9655_VPT 0x26U /* AGC/AEC Fast Mode Operating Region */
|
||||
#define OV9655_BBIAS 0x27U /* B Channel Signal Output Bias */
|
||||
#define OV9655_GBBIAS 0x28U /* GB Channel Signal Output Bias */
|
||||
#define OV9655_PREGAIN 0x29U /* RGB Channel Pre-gain */
|
||||
#define OV9655_EXHCH 0x2AU /* Dummy Pixel Insert MSB */
|
||||
#define OV9655_EXHCL 0x2BU /* Dummy Pixel Insert LSB */
|
||||
#define OV9655_RBIAS 0x2CU /* R Channel Signal Output Bias */
|
||||
#define OV9655_ADVFL 0x2DU /* LSB of insert dummy lines in vertical direction */
|
||||
#define OV9655_ADVFH 0x2EU /* MSB of insert dummy lines in vertical direction */
|
||||
#define OV9655_YG_AVERAGE_VALUE 0x2FU /* Y/G Channel Average Value */
|
||||
#define OV9655_HSYNC_RISING_EDGE_DELAY 0x30U
|
||||
#define OV9655_HSYNC_FALLING_EDGE_DELAY 0x31U
|
||||
#define OV9655_HORIZONTAL_FRAME_CTRL 0x32U
|
||||
#define OV9655_CHLF_CTRL 0x33U /* ADC Reference Control Array Current Control */
|
||||
#define OV9655_AREF1 0x34U /* Array Reference Control */
|
||||
#define OV9655_AREF2 0x35U /* Array Reference Control */
|
||||
#define OV9655_AREF3 0x36U /* Array Reference Control */
|
||||
#define OV9655_ADC1 0x37U /* ADC Control 1 */
|
||||
#define OV9655_ADC2 0x38U /* ADC Reference Control */
|
||||
#define OV9655_AREF4 0x39U /* Analog Reference Control */
|
||||
#define OV9655_TSLB 0x3AU /* Line Buffer Test Option */
|
||||
#define OV9655_COMMON_CTRL11 0x3BU
|
||||
#define OV9655_COMMON_CTRL12 0x3CU
|
||||
#define OV9655_COMMON_CTRL13 0x3DU
|
||||
#define OV9655_COMMON_CTRL14 0x3EU
|
||||
#define OV9655_EDGE 0x3FU
|
||||
#define OV9655_COMMON_CTRL15 0x40U
|
||||
#define OV9655_COMMON_CTRL16 0x41U
|
||||
#define OV9655_COMMON_CTRL17 0x42U
|
||||
#define OV9655_MATRIX_COEFFICIENT_1 0x4FU
|
||||
#define OV9655_MATRIX_COEFFICIENT_2 0x50U
|
||||
#define OV9655_MATRIX_COEFFICIENT_3 0x51U
|
||||
#define OV9655_MATRIX_COEFFICIENT_4 0x52U
|
||||
#define OV9655_MATRIX_COEFFICIENT_5 0x53U
|
||||
#define OV9655_MATRIX_COEFFICIENT_6 0x54U
|
||||
#define OV9655_BRIGHTNESS_ADJUSTMENT 0x55U
|
||||
#define OV9655_CONTRAST_COEFFICIENT_1 0x56U
|
||||
#define OV9655_CONTRAST_COEFFICIENT_2 0x57U
|
||||
#define OV9655_MATRIX_COEFFICIENT_SIGN 0x58U
|
||||
#define OV9655_AWB_CTRL_OPTION_1 0x59U
|
||||
#define OV9655_AWB_CTRL_OPTION_2 0x5AU
|
||||
#define OV9655_AWB_CTRL_OPTION_3 0x5BU
|
||||
#define OV9655_AWB_CTRL_OPTION_4 0x5CU
|
||||
#define OV9655_AWB_CTRL_OPTION_5 0x5DU
|
||||
#define OV9655_AWB_CTRL_OPTION_6 0x5EU
|
||||
#define OV9655_AWB_BLUE_GAIN_LIMIT 0x5FU
|
||||
#define OV9655_AWB_RED_GAIN_LIMIT 0x60U
|
||||
#define OV9655_AWB_GREEN_GAIN_LIMIT 0x61U
|
||||
#define OV9655_LENS_CORRECTION_OPTION_1 0x62U
|
||||
#define OV9655_LENS_CORRECTION_OPTION_2 0x63U
|
||||
#define OV9655_LENS_CORRECTION_OPTION_3 0x64U
|
||||
#define OV9655_LENS_CORRECTION_OPTION_4 0x65U
|
||||
#define OV9655_LENS_CORRECTION_CTRL 0x66U
|
||||
#define OV9655_MANU 0x67U /* Manual U Value */
|
||||
#define OV9655_MANV 0x68U /* Manual V Value */
|
||||
#define OV9655_BD50MAX 0x6AU /* 50 Hz Banding Filter Maximum Step Setting */
|
||||
#define OV9655_DBLV 0x6BU /* Band Gap Reference Adjustment */
|
||||
#define OV9655_DNSTH 0x70U /* De-noise Function Threshold Adjustment */
|
||||
#define OV9655_POIDX 0x72U /* Pixel Output Index */
|
||||
#define OV9655_PCKDV 0x73U /* Pixel Clock Output Selection */
|
||||
#define OV9655_XINDX 0x74U /* Horizontal Scaling Down Coefficients */
|
||||
#define OV9655_YINDX 0x75U /* Vertical Scaling Down Coefficients */
|
||||
#define OV9655_SLOP 0x7AU /* Gamma Curve Highest Segment Slope */
|
||||
#define OV9655_GAMMA_1 0x7BU /* Gamma Curve 1st Segment Input End Point 0x010 Output Value */
|
||||
#define OV9655_GAMMA_2 0x7CU /* Gamma Curve 2nd Segment Input End Point 0x020 Output Value */
|
||||
#define OV9655_GAMMA_3 0x7DU /* Gamma Curve 3rd Segment Input End Point 0x040 Output Value */
|
||||
#define OV9655_GAMMA_4 0x7EU /* Gamma Curve 4th Segment Input End Point 0x080 Output Value */
|
||||
#define OV9655_GAMMA_5 0x7FU /* Gamma Curve 5th Segment Input End Point 0x0A0 Output Value */
|
||||
#define OV9655_GAMMA_6 0x80U /* Gamma Curve 6th Segment Input End Point 0x0C0 Output Value */
|
||||
#define OV9655_GAMMA_7 0x81U /* Gamma Curve 7th Segment Input End Point 0x0E0 Output Value */
|
||||
#define OV9655_GAMMA_8 0x82U /* Gamma Curve 8th Segment Input End Point 0x100 Output Value */
|
||||
#define OV9655_GAMMA_9 0x83U /* Gamma Curve 9th Segment Input End Point 0x120 Output Value */
|
||||
#define OV9655_GAMMA_10 0x84U /* Gamma Curve 10th Segment Input End Point 0x140 Output Value */
|
||||
#define OV9655_GAMMA_11 0x85U /* Gamma Curve 11th Segment Input End Point 0x180 Output Value */
|
||||
#define OV9655_GAMMA_12 0x86U /* Gamma Curve 12th Segment Input End Point 0x1C0 Output Value */
|
||||
#define OV9655_GAMMA_13 0x87U /* Gamma Curve 13th Segment Input End Point 0x240 Output Value */
|
||||
#define OV9655_GAMMA_14 0x88U /* Gamma Curve 14th Segment Input End Point 0x2C0 Output Value */
|
||||
#define OV9655_GAMMA_15 0x89U /* Gamma Curve 15th Segment Input End Point 0x340 Output Value */
|
||||
#define OV9655_COMMON_CTRL18 0x8BU
|
||||
#define OV9655_COMMON_CTRL19 0x8CU
|
||||
#define OV9655_COMMON_CTRL20 0x8DU
|
||||
#define OV9655_DMLNL 0x92U /* Frame Dummy Line LSBs */
|
||||
#define OV9655_DMLNH 0x93U /* Frame Dummy Line MSBs */
|
||||
#define OV9655_LENS_CORRECTION_OPTION_6 0x9DU
|
||||
#define OV9655_LENS_CORRECTION_OPTION_7 0x9EU
|
||||
#define OV9655_AECH 0xA1U /* Exposure Value - AEC MSB 5 bits */
|
||||
#define OV9655_BD50 0xA2U /* 1/100s Exposure Setting for 50 Hz Banding Filter */
|
||||
#define OV9655_BD60 0xA3U /* 1/120s Exposure Setting for 60 Hz Banding Filter */
|
||||
#define OV9655_COMMON_CTRL21 0xA4U
|
||||
#define OV9655_GREEN 0xA6U /* AWB Green Component Gain Setting */
|
||||
#define OV9655_VZST 0xA7U /* VGA Zoom Mode Vertical Start Line */
|
||||
#define OV9655_REFA8 0xA8U /* Analog Reference Control */
|
||||
#define OV9655_REFA9 0xA9U /* Analog Reference Control */
|
||||
#define OV9655_BLC_1 0xACU /* Black Level Control 1 */
|
||||
#define OV9655_BLC_2 0xADU /* Black Level Control 2 */
|
||||
#define OV9655_BLC_3 0xAEU /* Black Level Control 3 */
|
||||
#define OV9655_BLC_4 0xAFU /* Black Level Control 4 */
|
||||
#define OV9655_BLC_5 0xB0U /* Black Level Control 5 */
|
||||
#define OV9655_BLC_6 0xB1U /* Black Level Control 6 */
|
||||
#define OV9655_BLC_7 0xB2U /* Black Level Control 7 */
|
||||
#define OV9655_BLC_8 0xB3U /* Black Level Control 8 */
|
||||
#define OV9655_CTRLB4 0xB4U
|
||||
#define OV9655_FRSTL 0xB7U /* One-Pin Frame Exposure Reset Time Control Low 8 Bits */
|
||||
#define OV9655_FRSTH 0xB8U /* One-Pin Frame Exposure Reset Time Control High 8 Bits */
|
||||
#define OV9655_ADBOFF 0xBCU /* ADC B channel offset setting */
|
||||
#define OV9655_ADROFF 0xBDU /* ADC R channel offset setting */
|
||||
#define OV9655_ADGbOFF 0xBEU /* ADC Gb channel offset setting */
|
||||
#define OV9655_ADGrOFF 0xBFU /* ADC Gr channel offset setting */
|
||||
#define OV9655_OV9655_COMMON_CTRL23 0xC4U
|
||||
#define OV9655_BD60MAX 0xC5U /* 60 Hz Banding Filter Maximum Step Setting */
|
||||
#define OV9655_OV9655_COMMON_CTRL24 0x07U
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/************** Generic Function *******************/
|
||||
|
||||
typedef int32_t (*OV9655_Write_Func)(void *, uint16_t, uint8_t*, uint16_t);
|
||||
typedef int32_t (*OV9655_Read_Func) (void *, uint16_t, uint8_t*, uint16_t);
|
||||
|
||||
typedef struct
|
||||
{
|
||||
OV9655_Write_Func WriteReg;
|
||||
OV9655_Read_Func ReadReg;
|
||||
void *handle;
|
||||
} ov9655_ctx_t;
|
||||
|
||||
/*******************************************************************************
|
||||
* Register : Generic - All
|
||||
* Address : Generic - All
|
||||
* Bit Group Name: None
|
||||
* Permission : W
|
||||
*******************************************************************************/
|
||||
int32_t ov9655_write_reg(ov9655_ctx_t *ctx, uint16_t reg, uint8_t *pdata, uint16_t length);
|
||||
int32_t ov9655_read_reg(ov9655_ctx_t *ctx, uint16_t reg, uint8_t *pdata, uint16_t length);
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* OV9655_REG_H */
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|
||||
Reference in New Issue
Block a user