Фотик на OV7670 F4DISCOWERY и MicroSD

Все о микроконтроллерах: AVR, PIC, STM8, STM32, Arduino, Altera, Xilinx, все что угодно. Этот раздел для всего что клацает байтиками.
gunya.electronics
Сообщения: 1
Откуда: г. Кременчуг

Сообщение gunya.electronics » 05 июн 2014, 16:45

Всем емббед привет! =) Понадобилось мне тут изучить принцип работы МК с CMOS матрицами, решил использовать связку камера OV7670 (камера подключена по DCMI) + STM32F4DISCOWERY + MicroSD (SDIO+DMA). Все это дело работает как фотик, жму на кнопку и типо должно сфотографировать, фотогравирует в буффер размером 176*144 байта (какраз влазит в ОЗУ дискавери =)) ), потом создаем на флешке файл bmp, и туда все сохраняем! Но беда в том что внятного изображения я так и не получил, всего лишь разные вариации шума, в зависимости от настроек камеры. Собственно что уже получилось, получилось общаться с регистрами камеры по интерфейсу SCCB (аналог I2C), также получилось писать данные в файл, но пишет как по мне медленно, открытие и запись 50Кбайт длится 1.2 сек. Не понятен для меня вопрос как эффективней всего забирать изображение с камеры. Вот как делаю сейчас.

Код: Выделить всё

      //while((DCMI_GetFlagStatus(DCMI_FLAG_VSYNC)) == RESET);
      for (i = 0; i < 25344; i+=2) {
         while ((DCMI_GetFlagStatus(DCMI_FLAG_FNE)) == RESET);

         uint16_t tmp = (DCMI->DR);
         img[1][i] = (tmp);
         img[0][i] = (tmp)>>8;

         tmp = (DCMI->DR)>>16;
         img[1][i+1] = (tmp);
         img[0][i+1] = (tmp)>>8;

      }
Видел гдето вариант настройки DMA где сам по себе заполняется массив для фотографии.
Может ктото работал с интерфейсом DCMI или с камерой OV7670. Помогите разобратся =) Могу поделится исходниками.
Вложения
IMG0000.jpg
Пример фотки которая получилась))
IMG0000.jpg (25.44 КБ) 20314 просмотров
viewfile.jpg

Вернуться в «Микроконтроллеры и ПЛИС»



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя