/**********************************************************
*    文件: test.ino      by 零知实验室(www.lingzhilab.com)
*    -^^- 零知开源，让电子制作变得更简单！ -^^-
*    时间: 2018/01/07 13:57
*    说明: 
************************************************************/

#include "camera.h"

#include <fsmc_lcd.h>

CAMERA_DCMI_INTERFACE camera;

#ifdef JPEG_OUTPUT_MODE
uint32_t jpeg_buf[jpeg_buf_size];	//JPEG数据缓存buf
extern volatile uint8_t jpeg_data_ok;
extern volatile uint32_t jpeg_data_len;
#endif

// 复位或上电后运行一次:
void setup() {
    //在这里加入初始化相关代码，只运行一次:
	pinMode(LED_BUILTIN, OUTPUT);
	Serial.begin(9600);
	Serial3.begin(460800);
	
	LCDx_Init();
	
	camera.begin(OV2640_DEVICE_ID);
	
	
	
#ifdef JPEG_OUTPUT_MODE
	camera.setOutSize(800,600);
	camera.startCapture((uint32_t)&jpeg_buf);
#else
	//rgb565 data, just show on LCD
	camera.setOutSize(240,320);
	camera.startCapture((uint32_t)&LCD_TYPE->LCD_RAM);
#endif
	
#ifdef JPEG_OUTPUT_MODE
  int i;
  uint8_t *p;
  
  //process the jpg data, send to Serial3
  while(1)
	{

		if(jpeg_data_ok==1)	//
		{
			p=(uint8_t*)jpeg_buf;

			Serial.println("send one frame data...");

			for(i=0;i<jpeg_data_len*4;i++)		//
			{

				Serial3.write(p[i]);
			}

			jpeg_data_ok=2;	//
		}
	}
#endif
}

static int state = 0;

//一直循环执行:
void loop() {
    // 在这里加入主要程序代码，重复执行:
	
	
}
