/*************************************************************************************************************
  Copyright (C) 2016-2022 JSC "ICC Milandr" 

*************************************************************************************************************/

/*
 *
 *  Файл:      readme.txt
 *  Описание:  Описание примера CAMERA_OV7670
 *
 *  История:
 *             03.10.22  - cоздан
 *
 */


/* Описание примера ----------------------------------------------------------------------------------------*/

В данном примере демонстрируется работа с внешней видеокамерой OV7670.

Для демонстрации возможностей совместно с видеокамерой также применяется модуль LCD дисплея для микросхем 
1967ВН044. Таким образом принятые с видеокамеры изображения сразу же выводятся на LCD дисплей.

Для работы с LCD дисплеем конфигурируется контроллер LCD-панели. LCD дисплей использует буфер ulLcdBuf, 
который хранит изображение размером 480x272 пикселя. Ввиду большого объёма буфер ulLcdBuf располагается во 
внешней SDRAM памяти. Для передачи данных из буфера ulLcdBuf в контроллер LCD-панели применяется 5 канал DMA,
который постоянно обновляет изображение на LCD дисплее.

Настройка видеокамеры OV7670 осуществляется с помощью программного интерфейса I2C. Видеокамера настраивается 
на передачу изображения в формате QVGA - 320x240 пикселей. Для приёма данных от видеокамеры используется 
контроллер видеокамеры. Чтобы выводить принятые изображения на LCD дисплей настраивается 9 канал DMA, который
передаёт принятые от видеокамеры данные в буфер LCD дисплея - ulLcdBuf. Так как изображения с видеокамеры
меньше, чем размер LCD дисплея (видеокамер - 320x240, LCD дисплей - 480x272), то настройка DMA выполняется 
таким образом, чтобы изображения от видеокамеры располагались в центре LCD дисплея.

Обратите внимание, контроллер видеокамеры устроен так, что после приема кадра необходимо выключить контроллер
и затем для принятия нового кадра снова его включить.


/* Содержание каталога -------------------------------------------------------------------------------------*/

    - main.c               Основная программа
    - sdram_init.c,        Функции для конфигурации SDRAM MT48LC16M16A2
      sdram_init.h
    - lcd_init.c,          Функции для конфигурации LCD дисплея
      lcd_init.h
    - ov7670         	   Драйвер для работы с видеокамерой OV7670
    - GUI         	       Библиотека для работы с LCD дисплеем
    - project.ldf          Файл сценария для компоновщика
    - session.lldbinit     Файл инициализации периферии до запуска отладки
    - .cproject, .project  Файлы конфигурации проекта


/* Аппаратная и программная среда --------------------------------------------------------------------------*/

    - Интегрированная среда разработки CM-LYNX.
    - Отладочная плата для процессора 1967ВН044.
    - Комплект модуля камеры для микросхем 1967ВН044.
    - Комплект модуля дисплея для микросхем 1967ВН044.

    Модуль камеры реализует функции камеры, микрофона и наушников. Перед началом работы модуль камеры 
    необходимо подключить в разъёмы XS7-XS8 отладочного модуля для процессора 1967ВН044.
    Для модуля отладочного вер. 2.31 и более необходимо снять джампер с разъёма XP1 и установить в ПО вывод 
    процессора flag2 в высокоимпедансное состояние либо в состояние логического «0».
    Для модуля отладочного вер. 2.3 и менее необходимо установить джампер на разъём XP1.
    
    Модуль дисплея необходимо подключить в разъёмы XS3.1-XS3.2 отладочного модуля для процессора 1967ВН044.


/* Использование -------------------------------------------------------------------------------------------*/

Для запуска примера необходимо выполнить следующие действия:
    - Создать новое или открыть существующее рабочее пространство (Workspace).
    - Выполнить импорт проекта "CAMERA_OV7670" в соответствии с "ML_GUI_Руководство_пользователя_R_Vx", 
      п. "Импорт существующего проекта".
    - Выполнить сборку проекта.
    - Создать конфигурацию отладки в соответствии с "ML_GUI_Руководство_пользователя_R_Vx", п. "Настройка 
      конфигурации и запуск отладки".
    - Запустить пример в режиме отладки.

Подробное описание библиотеки HAL с примерами использования функций приведено в каталоге по пути:
"CM-LYNX.x.yy.zz\toolchain\1967VN044\HAL\doc".
