⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 buxx_setuptable.h

📁 bu1566dsp芯片用来处理ov7660或其他30万摄像模组的图像预览.图像拍照(jpeg压缩)
💻 H
字号:
/* ************************************************************************ */
/*                                                                          */
/* ROHM BU15xx demo firmware on MD2306                                      */
/*     Client   : ROHM Co., Ltd.丂丂丂丂丂 丂                                */
/*     End User :                                                           */
/*                                                                          */
/*     Processor: ARM-7TDMI(THUMB Mode)                                     */
/*     Dev.Env. : ARM-SDTv2.51                                              */
/*                                                                          */
/*     setup table Header       	                                    */
/*                                                                          */
/*     file     : BUxx_setuptable.h                                         */
/*     Auther   : J.SATO(NTC)丂                                             */
/*     Date     : 2004/Ju1./1	                                            */
/*                                                                          */
/*     Copyright (c) 2002-04 Naritagiken Co., Ltd. All rights reserved.     */
/* ************************************************************************ */
/* History:								    */
/* 2004/Jul./1 Rev 1.00 create		                                    */
/*                                                                          */
/* ************************************************************************ */

#if !defined BUXX_SETUPTABLE_H_INCLUDED
#define	BUXX_SETUPTABLE_H_INCLUDED
/* ************************************************** */
/*		     INCLUDE FILES		      */
/* ************************************************** */

/* ************************************************** */
/*		        DEFINES			      */
/* ************************************************** */
typedef unsigned char UINT8;
typedef unsigned short UINT16;
typedef unsigned long UINT32;
//typedef char          STRING;
typedef char INT8;
typedef short INT16;
typedef long INT32;
//typedef int           INT;

//-------------------------------------------
//*******************************************
//              user definition丂           *
//*******************************************
//-------------------------------------------
//for debug
#define DEBUG
#define BUXX_POLLING

#define _BU1563API_INTERFACE_
//#define HOSTJD_TEST
//#define _LCD_INDIRECT_WRITE_

//#define LCDBUS_9BIT

#define BUSACCESS_BIT	16      //or 8

#define TRAN_KEY_COLOR  0x07E0//0xf7de // 0xF81F

//#define SENSOR_ROT90

//OV7648_SENSOR;OV7660_SENSOR;
//MT9V111_SENSOR;
//CSV1061_SENSOR;CSV1411_SENSOR;
//S5K53BEA_SENSOR
#define OV7660_SENSOR

//TMD_LTM018A02A;TMD_LTM022A05D;
//NEC_502i;
//HD66773_LCD;HD66777_LCD;
//S6B33B3A;S6B33B2
#define TMD_LTM022A05D 

enum
{
    ZOOM_IN=-1  //sight far
    ,ZOOM_OUT=1  //sight near
};

enum{
    BU15xx_GIO0=0
    ,BU15xx_GIO1
    ,BU15xx_GIO2
    ,BU15xx_GIO3
    ,BU15xx_GIO4
    ,BU15xx_GIO5
    ,BU15xx_GIO6
};

#define    SIGLESHOT 0
#define    MULTISHOT 1
#define    MOTIONJPEG 2


#define MULTI_JPEG_BUFFER (100*1024)
#define JPEG_BUFFER	(100*1024)
#define MJPEG_FRAMENUM	(8*30)
#define MJPEG_BUFFER	(256*1024)

//*******************************************
//            bu15xx access setup           *
//*******************************************
#define   LCD_CMD_WRITE (volatile UINT16*)0x82000000  //A22A21 ,0x82000000
#define	LCD_PDAT_WRITE (volatile UINT16*) 0x82000002   //A22A21 ,0x82200000
#define	INDEX_ACCESS (volatile UINT16* )  0x82000004   //A22A21 ,0x82400000
#define	REG_ACCESS (volatile UINT16* )    0x82000006   //A22A21 ,0x82600000

//*******************************************
//            System is set up              *
//*******************************************
//HOST_END bigendian or littleendian is set up
#define ENDIAN		sLITTLE_END     //or BIG_END

//hwmode register host_type setup
#define HOST_TYPE	sHELEN  //or sTRIDENT

//clock setup
#define LCDFRSRC	sLCDFR1_4096//sLCDFR1_4096    //or sLCDFR1_64
#define LCD_BASE_TIMING	sLCDFR  //or sVD
#define VDEDG_SEL	sVDEDG_DOWN     //or sVEDG_UP
#define VD_EN		sGIO6_ENABLE    //or sVD_ENABLE
#define SCLK_DIV	0x0000
#define LCDFR_DIV	0x0000
#define LCDFR_DELAY	0x0001
#define CAMCKO_DIV	0x0001

//interrupt setup
#define INT_SEL		sEDGE   //or sLEVEL
#define INT_POL		sLOW_INT        //or sHIGH_INT

//led setup
#define LEDCNT_EN	sLEDCNT_DISABLE //or sLEDCNT_ENABLE
#define LEDCNT_POL	sLEDCNT_L       //or sLEDCNT_H

//*******************************************
//             Main LCD is set up           *
//*******************************************

#if defined TMD_LTM022A05D
//LCD WRITE COMMAND is set up
#define M_EXCMD		1
#define M_CMD_DATA1	0x0e00
//Main LCD size is set up
#define MLCD_START_H 0
#define MLCD_END_H  175
#define MLCD_START_V 0
#define MLCD_END_V 219

#elif defined TMD_LTM018A02A
//LCD WRITE COMMAND is set up
#define M_EXCMD		1
#define M_CMD_DATA1	0x0e00
//Main LCD size is set up
#define MLCD_START_H 0
#define MLCD_END_H  127
#define MLCD_START_V 0
#define MLCD_END_V 159

#elif defined NEC_502i
//LCD WRITE COMMAND is set up
#define M_EXCMD		1
#define M_CMD_DATA1	0x0022
//Main LCD size is set up
#define MLCD_START_H 16
#define MLCD_END_H  159 //159
#define MLCD_START_V 0
#define MLCD_END_V  175 //175

#elif defined HD66773_LCD
//LCD WRITE COMMAND is set up
#define M_EXCMD		1
#define M_CMD_DATA1	0x0022
//Main LCD size is set up
#define MLCD_START_H 0
#define MLCD_END_H  127 //159
#define MLCD_START_V 0
#define MLCD_END_V  159 //175

#elif defined HD66777_LCD
//LCD WRITE COMMAND is set up
#define M_EXCMD		1
#define M_CMD_DATA1	0x0022
//Main LCD size is set up
#define MLCD_START_H 0
#define MLCD_END_H  127 //159
#define MLCD_START_V 0
#define MLCD_END_V  159 //175

#elif defined S6B33B3A
//LCD WRITE COMMAND is set up
#define M_EXCMD		1
#define M_CMD_DATA1	0x0051
//Main LCD size is set up
#define MLCD_START_H 4
#define MLCD_END_H  131 
#define MLCD_START_V 4
#define MLCD_END_V  131 

#elif defined S6B33B2
//LCD WRITE COMMAND is set up
#define M_EXCMD		1
#define M_CMD_DATA1	0x0051
//Main LCD size is set up
#define MLCD_START_H 4
#define MLCD_END_H  131 
#define MLCD_START_V 4
#define MLCD_END_V  131 

#endif                          //#if   TMD_LTM022A05D

#define M_LCD_WSIZE	(MLCD_END_H-MLCD_START_H +1)    //144              //
#define M_LCD_HSIZE	       (MLCD_END_V-MLCD_START_V +1)     //176               //

#define M_CMD_DATA2	0
#define M_CMD_DATA3	0
#define M_CMD_DATA4	0
#define M_CMD_DATA5	0
#define M_CMD_DATA6	0
#define M_CMD_DATA7	0

//Main LCD Transfer wave shape is set up
#define LCD_DELAY	sNO_DELAY       //or sDELAY10MS, sDELAY1SCLK, sDELAY10NS
#define	M_LCDWL		0x03
#define	M_LCDWH		0x03

//Main LCD Resolution is set up
#define M_LCD_CTYPE	sC565B16A1      // 65kcolor 5r6g5b 16bit 1pix/1.0cycle


//*******************************************
//              Sub LCD is set up           *
//*******************************************
//LCD WRITE COMMAND is set up

#define S_EXCMD               1 ///4
#define S_CMD_DATA1	0x0e00//0x2d
#define S_CMD_DATA2	0//0x01
#define S_CMD_DATA3	0//0x2d
#define S_CMD_DATA4	0//0x00
#define S_CMD_DATA5	0
#define S_CMD_DATA6	0
#define S_CMD_DATA7	0

//Main LCD Transfer wave shape is set up
#define	S_LCDWL	0x03
#define	S_LCDWH	0x03

//Main LCD size is set up
#define S_LCD_WSIZE	128     //MIN 120pixel乣MAX 162pixel
#define S_LCD_HSIZE	160     //MIN 144pixel乣MAX 216pixel

//Main LCD Resolution is set up
#define S_LCD_CTYPE	sC565B16A1//sC565B8A2       // 65kcolor 5r6g5b 8bit 1pix/2.0cycle


//*******************************************
//               CAM is set up              *
//*******************************************
//CAMIF INIT set up
#define SUB_OFFSET	sNO_YOFFSET     //or sY16OFFSET
#define YUVORD		sUYVY   //or sYUYV, sYVYU, sVYUY
#define RGBORD		sRGBRGB //or sRBGRBG, sGRBGRB, sGBRGBR, sBRGBRG, sBGRBGR
#define RGBorYUV	sYUV422 //or RGB444
#define CKPOL		sCK_UP        //or sCK_UP;sCK_DOWN  //shrek change 061014  base sCK_DOWN
#define HSPOL		sHS_HIGH        //or sHS_LOW
#define VSPOL		sVS_HIGH        //or sVS_LOW

//Cam size is set up
#define	CAM_HSIZE	640
#define	CAM_VSIZE	480

//Cam start point is set up
#define	CXS		0x0     //0x2e
#define	CYS		0x0     //0x0f

//LowPath Filter set up
#define CXTYPE		sNO_FILTER      //or sX_FILTER
#define CYTYPE		sNO_ADD_AVR     //or sADD_AVR
#define YOFFSET		sBILINER        //or sMIDDLE



/**************** 2byte ACCESS ***************/
#define		CHAR_SHORT(a)	(UINT16)((a[0] << 8) | a[1])



/* ************************************************** */
/*		        TYPEDEF		    	      */
/* ************************************************** */

/* ************************************************** */
/*		    GLOBAL VARIABLE		      */
/* ************************************************** */
extern volatile int gl_bank_chk;
extern volatile int gl_check_int;
extern volatile int gl_dsc_status;


typedef struct
{
    UINT16 xsize;
    UINT16 ysize;
    UINT16 st_x;
    UINT16 st_y;
}
LCDSET;

typedef struct
{
    UINT16 xsize;
    UINT16 ysize;
    UINT16 cst_x;
    UINT16 cst_y;
    UINT16 srkx;
    UINT16 srky;
    UINT16 mst_x;
    UINT16 mst_y;
    UINT16 rot_h_vflip;

}
CAMSET;

typedef struct
{
    UINT16 u16OvlOpen;
    UINT16 xsize;
    UINT16 ysize;
    UINT16 st_x;
    UINT16 st_y;
    UINT16 u16TransColor;
    const UINT16* u16OvlData;
}OVLSET;

typedef struct
{
    UINT16 u16OvlIndex;
    UINT16 u16OvlOpen;
    UINT16 u16FmXsize;
    UINT16 u16FmYsize;
    UINT16 u16FmSt_x;
    UINT16 u16FmSt_y;
    UINT16 u16TransColor;
    UINT16 u16TransEnable;
    UINT16 u16MaskColor;
    UINT16 u16ExmXsize;
    UINT16 u16ExmYsize;
    UINT16 u16ExmSt_x;
    UINT16 u16ExmSt_y;
}EXOVLSET;

typedef struct
{
    EXOVLSET* p_ExOverlay1;
    char szOvl1Str[40];
    EXOVLSET* p_ExOverlay2;
    char szOvl2Str[40];
}c_ItemBase;

typedef struct
{
    c_ItemBase v_Item;
    LCDSET* m_pwindow;
    CAMSET* m_pcamera;
}c_PreSizeItem;

typedef struct
{
    c_ItemBase v_Item;
    OVLSET* p_Overlay;
}c_OvlItem;

typedef struct
{
    c_ItemBase v_Item;
    UINT16 u16Filter;
}c_FilterItem;

typedef struct
{
    c_ItemBase v_Item;
    UINT16 u16JpgQuality;
}c_JpgQualityItem;

typedef struct
{
    c_ItemBase v_Item;
    UINT16 u16JpgFunc;
}c_JpgFuncItem;

typedef struct
{
    c_ItemBase v_Item;
    CAMSET* p_EncSize;
}c_JpgEncSizeItem;

typedef struct
{
    c_ItemBase v_Item;
    CAMSET* p_DecSize;
}c_JpgDecSizeItem;

struct cs_SetBase
{
    UINT16 u16CurIndex;
    UINT16 u16MaxNum;
    void (*fInit)(struct cs_SetBase*);
    void (*fSet)(struct cs_SetBase*);
};

typedef struct cs_SetBase c_SetBase;

typedef struct
{
    c_SetBase v_Set;
    c_PreSizeItem* p_PreSize;
} c_PreSizeSet;

typedef struct
{
    c_SetBase v_Set;
    c_OvlItem* p_Overlay;
} c_OvlSet;

typedef struct
{
    c_SetBase v_Set;
    c_FilterItem* p_Filter;
} c_FilterSet;

typedef struct
{
    c_SetBase v_Set;
    c_JpgQualityItem* p_Quality;
}c_JpgQualitySet;

typedef struct
{
    c_SetBase v_Set;
    c_JpgFuncItem* p_Func;
}c_JpgFuncSet;

typedef struct
{
    c_SetBase v_Set;
    c_JpgEncSizeItem* p_EncSize;
}c_JpgEncSizeSet;

typedef struct
{
    c_SetBase v_Set;
    c_JpgDecSizeItem* p_DecSize;
}c_JpgDecSizeSet;

typedef struct
{
    c_ItemBase* p_Item;
    OVLSET* p_Overlay;
    LCDSET* p_Window;
    CAMSET* p_Camera;
    UINT16 u16Filter;       
    CAMSET* p_EncSize;
    CAMSET* p_DecSize;
    UINT16 u16JpgFunc;
    UINT16 u16JpgQuality;
    UINT32 u32JpgSize;
    UINT16* p_u16JpgCode;
}t_VideoData;

/* ************************************************** */
/*		    GLOBAL FUNCTIONS		      */
/* ************************************************** */


/* ************************************************** */
/*		     INCLUDE FILES		      */
/* ************************************************** */

#include "BUxx_mem.h"
#include "BUxx_DRV.h"



#endif                          /* BUXX_SETUPTABLE_H_INCLUDED */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -