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

📄 cam_module.h

📁 手机摄像头带jpeg压缩芯片PAP1302有关C语言代码,含ISP
💻 H
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2003
*
*****************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 *    cam_module.h
 *
 * Project:
 * --------
 *   Maui_Software
 *
 * Description:
 * ------------
 *   This file contains the driver header file of pap1302 camera module
 *
 * Author:
 * -------
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
#ifndef _CAM_MODULE_H
#define _CAM_MODULE_H

#if (defined(CAMERA_MODULE))
#include "gpio_sw.h"
#include "ext_camera.h"

void GPIO_ModeSetup(kal_uint16 pin, kal_uint16 conf_dada);

#if (defined(MP100_BB))
	#define pap1302_READY_PIN			6
	#define pap1302_RESET_PIN			39
#else
	#define pap1302_READY_PIN			2
	#define pap1302_RESET_PIN			3
#endif
#define pap1302_POWER_PIN			4
#define pap1302_CLK_PIN				43
#if (defined(MT6218B))
#define pap1302_BASE_ADDR        0x90000810		/* parallel CS2 */
#endif
#if (defined(MT6217))
#define pap1302_BASE_ADDR        0x90006000		/* parallel CS2 */
#endif

#define ENABLE_pap1302_CLK			GPIO_ModeSetup(pap1302_CLK_PIN,3); \
											(*(volatile unsigned int *) 0x80080000)=0x1008;	/* 26 MHz clock output */
#define DISABLE_pap1302_CLK		GPIO_ModeSetup(pap1302_CLK_PIN,0);
#define SET_pap1302_RESET_PIN    GPIO_WriteIO(1,pap1302_RESET_PIN);
#define CLEAR_pap1302_RESET_PIN  GPIO_WriteIO(0,pap1302_RESET_PIN);
#define pap1302_POWER_DOWN       GPIO_WriteIO(0,pap1302_POWER_PIN);
#define pap1302_POWER_ON         GPIO_WriteIO(1,pap1302_POWER_PIN);

#define pap1302_READY		      (!GPIO_ReadIO(pap1302_READY_PIN))
#if (defined(MT6218B))
	#define pap1302_BASE_ADDRESS		0x90000810		/* Parallel CS2 */
#endif
#if (defined(MT6217))
#define pap1302_BASE_ADDRESS		0x90006000		/* Parallel CS2 */
#endif


#define pap1302_WRITE_CMD(data)	   (*(volatile unsigned char *) (pap1302_BASE_ADDRESS))=data;
#if (defined(MT6218B))
#define pap1302_WRITE_DATA(data)	   (*(volatile unsigned char *) (pap1302_BASE_ADDRESS+0x04))=data;
#define pap1302_READ_DATA			   (*(volatile unsigned char *) (pap1302_BASE_ADDRESS+0x04))
#endif
#if (defined(MT6217))
#define pap1302_WRITE_DATA(data)	   (*(volatile unsigned char *) (pap1302_BASE_ADDRESS+0x100))=data;
#define pap1302_READ_DATA			   (*(volatile unsigned char *) (pap1302_BASE_ADDRESS+0x100))
#endif

#define pap1302_LCD_RS_WRITE_ADDR		0xF0
#define pap1302_LCD1_WRITE_ADDR			0xF2
#define pap1302_LCD1_READ_ADDR			0xF3
#define pap1302_LCD2_WRITE_ADDR			0xF6
#define pap1302_LCD2_READ_ADDR			0xF7
#define pap1302_REG_WRITE_ADDR			0xF8
#define pap1302_REG_READ_ADDR				0xF9
#define pap1302_BUFFER_READ_WRITE_ADDR	0xFB
#define pap1302_SET_BUFFER_ADDR			0xFD
#define pap1302_INTERRUPT_FLAG_ADDR		0xFF

#define pap1302_SET_JPEG_QUALITY_CMD	0x01
#define pap1302_SET_WB_MODE_CMD			0x02
#define pap1302_SET_EV_VALUE_CMD			0x03
#define pap1302_SET_BAND_MODE_CMD		0x04
#define pap1302_SET_DIGITAL_ZOOM_CMD	0x05

#define pap1302_JPEG_QUALITY_LOW			0x01
#define pap1302_JPEG_QUALITY_NORMAL		0x02
#define pap1302_JPEG_QUALITY_HIGH		0x03
#define pap1302_JPEG_QUALITY_FINE		0x04

#define pap1302_WB_AUTO						0x01
#define pap1302_WB_DAYLIGHT				0x02
#define pap1302_WB_TUNGSTEN				0x03
#define pap1302_WB_FLUORESCENT			0x04

#define pap1302_BANDING_50HZ				0x01
#define pap1302_BANDING_60HZ				0x02

#define pap1302_SET_SPECIAL_EFFECT_CMD          0x08
#define pap1302_EFFECT_NORMAL                           0x00
#define pap1302_EFFECT_GRAYSCALE                        0x01
#define pap1302_EFFECT_COLOR_INVERT                     0x02
#define pap1302_EFFECT_SEPIA                            0x03
#define pap1302_EFFECT_BLACKBOARD                       0x04
#define pap1302_EFFECT_WHITEBOARD                       0x05



#define pap1302_EV_POS_4_3					0x01
#define pap1302_EV_POS_3_3					0x02
#define pap1302_EV_POS_2_3					0x03
#define pap1302_EV_POS_1_3					0x04
#define pap1302_EV_0							0x05
#define pap1302_EV_NEG_1_3					0x06
#define pap1302_EV_NEG_2_3					0x07
#define pap1302_EV_NEG_3_3					0x08
#define pap1302_EV_NEG_4_3					0x09

#define pap1302_DIGITAL_ZOOM_NORMAL		0x01
#define pap1302_DIGITAL_ZOOM_2X			0x02
#define pap1302_DIGITAL_ZOOM_4X			0x03

extern kal_uint16 preview_image_width,preview_image_height;
extern kal_uint8 ext_camera_state;
extern kal_uint8 image_quality,image_format,white_balance_mode;
extern kal_uint8 digital_zoom_mode,gamma_table_number;
extern kal_uint8 image_effect;

void cam_module_func_config(void);
kal_uint16 pap1302_reg_read(kal_uint8 reg_address);
void pap1302_reg_write(kal_uint8 reg_address,kal_uint16 data);
void pas302_reg_write_delay(kal_uint8 reg_address,kal_uint8 data);
void pap1302_reg_write_if(kal_uint16 reg_address,kal_uint16 data);
kal_uint16 pap1302_reg_read_if(kal_uint16 reg_address);
kal_uint8 check_pap1302_status(void);
kal_uint8 check_pap1302_preview_ready(void);
kal_uint32 check_pap1302_capture_ready(void);
void pap1302_preview_frame(ext_camera_para_struct *ext_cam_para);
void pap1302_stop_preview(void);
void pap1302_capture_frame(ext_camera_para_struct *ext_cam_para);
kal_uint32 pap1302_encode_frame(ext_camera_para_struct *ext_cam_para,kal_bool back_to_preview);
void reset_pap1302(void);
void delay_pap1302(int delay_count);
void init_pap1302(void);
void pap1302_cmd_mapping(void);
void stop_pap1302(void);
void pap1302_get_image(void);
void pap1302_set_para(kal_uint8 cmd, kal_uint8 para);
kal_uint32 pap1302_get_jpeg_file(void);
kal_uint32 pap1302_get_burst_jpeg_file(void);
kal_uint8 pap1302_frame_rate(void);
#endif /* CAMERA_MODULE */
#endif /* _CAM_MODULE_H */


⌨️ 快捷键说明

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