реклама на сайте
подробности

 
 
> STM32F4 DCMI Обрезка изображения
Влад Р.
сообщение Jan 6 2016, 12:54
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 87
Регистрация: 9-12-10
Пользователь №: 61 511



Доброго времени суток!

Получаю картинку с камеры в формате RGB565 с использованием DMA. Полный кадр нормально захватывается и сохраняется во внешнюю SRAM (16-битное слово).
Когда пытаюсь с использованием аппаратного кропа модуля DCMI захватить полоску высотой 100 пикселей, нормально захватываются только первые 2 кадра.
Дальнейшие кадры искажаются. Подскажите, что делаю не так.

Код для работы с DCMI, 2й (нормальный) и 3й (искаженный) кадры прикладываю.

Вызываю примерно так:
Код
DCMI_Init();
DCMI_Crop_Enable(0, 334, XGA_X_RES, 100);
for (;;) {
  DCMI_Read(img, IMG_SZ);
  delay_ms(1000);
}


Сообщение отредактировал Влад Р. - Jan 6 2016, 13:01
Прикрепленные файлы
Прикрепленный файл  attach.zip ( 138.35 килобайт ) Кол-во скачиваний: 18
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Влад Р.
сообщение Jan 11 2016, 16:41
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 87
Регистрация: 9-12-10
Пользователь №: 61 511



Сам спросил, сам отвечаю. Для включения/выключения и настройки обрезки изображения необходимо предварительно отключать интерфейс камеры (даже в покадровом режиме).
Код
void DCMI_Crop_Enable(uint16_t x, uint16_t y, uint16_t w, uint16_t h)
{
  DCMI->CR &= ~DCMI_CR_ENABLE;
  DCMI->CWSTRTR = (y << 16) | (x << 1);     // на каждый пиксель приходится 2 такта PIXCLK
  DCMI->CWSIZER = (h << 16) | (w << 1);
  DCMI->CR |= DCMI_CR_CROP | DCMI_CR_ENABLE;
}

void DCMI_Crop_Disable(void)
{
  DCMI->CR &= ~(DCMI_CR_CROP | DCMI_CR_ENABLE);
  DCMI->CR |= DCMI_CR_ENABLE;
}


Сообщение отредактировал Влад Р. - Jan 11 2016, 16:42
Go to the top of the page
 
+Quote Post
ШСА
сообщение Jan 11 2016, 17:04
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 291
Регистрация: 11-04-14
Из: Саратов
Пользователь №: 81 335



Раз уж такое дело, подскажите, что и где надо узнать, чтобы получить возможность пользоваться DCMI?
Go to the top of the page
 
+Quote Post
Влад Р.
сообщение Jan 11 2016, 21:59
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 87
Регистрация: 9-12-10
Пользователь №: 61 511



Цитата(ШСА @ Jan 11 2016, 19:04) *
Раз уж такое дело, подскажите, что и где надо узнать, чтобы получить возможность пользоваться DCMI?


Код для работы с DCMI у меня самописный (есть в атаче, только функции кропа заменить). При написании пользовался референс мануалом от STM:
http://www.st.com/web/en/resource/technica.../DM00031020.pdf
Но "нюанс" про обрезку изображения встретил только в описании к функциям для работы с DCMI в STM32 SPL.

Вот отличная статья по интерфейсу, которой я сам пользовался:
http://habrahabr.ru/post/186980/

Сообщение отредактировал Влад Р. - Jan 11 2016, 22:00
Go to the top of the page
 
+Quote Post
ШСА
сообщение Jan 11 2016, 22:44
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 291
Регистрация: 11-04-14
Из: Саратов
Пользователь №: 81 335



Спасибо за информацию.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01352 секунд с 7
ELECTRONIX ©2004-2016