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

📄 hal_config.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
//===============================================================================
//  HAL_STRUCT information generated by 13716CFG.EXE (Build 47)
//  Copyright (c) 2002 Epson Research and Development, Inc.
//  All rights reserved.
//
//  DISPLAYS      WxHxBPP     FREQ    SUBTYPE                                    
//  ------------- ----------- ------- -------------------------------------------
// *LCD1=None
//  LCD2=Parallel 128x160x16  NA      5.6.5 (16-bit)
//  LCD3=None
// 
//  DIMENSIONS    WxHxBPP 	@ STRIDE   START   SADDR     ADDITIONAL                
//  ------------- ------------------ ------- --------- --------------------------
//  Main/Resizer	128x160x16 	@ 256   		0,0	00000000h Swivel=0 Scaling=OFF
//  Overlay		128x160x8 	@ 128    		NA	0000A000h Swivel=OFF Scaling=OFF
// 
//  CLOCKS        FREQ        SOURCE                                             
//  ------------- ----------- ---------------------------------------------------
//  INCLK         54.001 MHz  PLL (via CLKI)
//  SYSCLK        54.001 MHz  INCLK/1
//  LCDPCLK       2.250 MHz   SYSCLK/24
//  CMCLKOUT      13.500 MHz  SYSCLK/4
//  I2CCLK        9.000 MHz   INCLK/6
//
//  This file INSTANTIATES the HalInfo structure, and should
//  only be included, one time, by the mini-HAL.
//===============================================================================

#include "hal_private.h"

#ifndef HAL_STRUCT_NAME
#define HAL_STRUCT_NAME HalInfo
#endif

#ifdef EPSON_ORIGINAL
#define S1D10251
//#define S1D10253
//#define S1D10237
//#define S1D50173
#else
#define INNOVATION_M288
#endif

//#ifdef INNOVATION_M288	/* Robert.Chen added, 2004-06-05 */
#if( MODEL == 5 ) //M288S
HAL_STRUCT HAL_STRUCT_NAME =
{
	50000000,					//PllClk 50M
	32768,						//internal OSC frequency
	0x02200000,					//dwBaseAddress	
	0x00000000,					//dwRegisterOffset
	0x00000000,					//dwMemoryOffset

	640, 480,					//wCam1Width, wCam1Height

	0,							//dwRequiredVRAM
	0,							//dwFlags

	/* LCD register initialization sequence (LCD1) */
	{
		HAL_LCD_ENDOFTABLE
	},

	/* LCD register initialization sequence (LCD2) */
	{
		HAL_LCD_COMMAND + 0x01, 	//main_lcd_sendcommand(0x0001);
		HAL_LCD_DELAY	+ 100,		//wait_ARM_cycles(convert_nanosec_to_cycles(100000000)); 

		//enable factory default
		HAL_LCD_COMMAND	+ 0xee,		//main_lcd_sendcommand(0x00ee);

		//set multiplication factor
		HAL_LCD_COMMAND	+ 0xc2,		//main_lcd_sendcommand(0x00c2);
		HAL_LCD_PARAM	+ 0x03,		//main_lcd_senddata(0x0003);

		//set Vop
		HAL_LCD_COMMAND	+ 0xb0,		//main_lcd_sendcommand(0x00b0);
		HAL_LCD_PARAM	+ 0x09,		//main_lcd_senddata(0x0009);
		HAL_LCD_PARAM	+ 0x0a,		//main_lcd_senddata(0x0010);

		//set contrast
		HAL_LCD_COMMAND	+ 0x25,		//main_lcd_sendcommand(0x0025);
		HAL_LCD_PARAM	+ 0x0,		//main_lcd_senddata(0x0000);

		//set bias system
		HAL_LCD_COMMAND	+ 0xc7,		//main_lcd_sendcommand(0x00c7);
		HAL_LCD_PARAM	+ 0x0b,		//main_lcd_senddata(0x000b);

		//set divider frequency
		HAL_LCD_COMMAND	+ 0xc5,		//main_lcd_sendcommand(0x00c5);
		HAL_LCD_PARAM	+ 0x20,		//main_lcd_senddata(0x0020);
		HAL_LCD_PARAM	+ 0x20,		//main_lcd_senddata(0x0020);
		HAL_LCD_PARAM	+ 0x20,		//main_lcd_senddata(0x0020);
		HAL_LCD_PARAM	+ 0x20,		//main_lcd_senddata(0x0020);

		//set TCVOP slopes A and B
		HAL_LCD_COMMAND	+ 0xc3,		//main_lcd_sendcommand(0x00c3);
		HAL_LCD_PARAM	+ 0x30,		//main_lcd_senddata(0x0030);

		//set TCVOP slopes C and D
		HAL_LCD_COMMAND	+ 0xc4,		//main_lcd_sendcommand(0x00c4);
		HAL_LCD_PARAM	+ 0x65,		//main_lcd_senddata(0x0065);

		//sleepout
		HAL_LCD_COMMAND	+ 0x11,		//main_lcd_sendcommand(0x0011);

		//colour interface pixel format
		HAL_LCD_COMMAND	+ 0x3a,		//main_lcd_sendcommand(0x003a);
		HAL_LCD_PARAM	+ 0x05,		//main_lcd_senddata(0x0005);

		//booster voltage 
		HAL_LCD_COMMAND	+ 0x03,		//main_lcd_sendcommand(0x0003);
		HAL_LCD_DELAY	+ 500,		//wait_ARM_cycles(convert_nanosec_to_cycles(500000000)); 

		//display on
		HAL_LCD_COMMAND	+ 0x29,		//main_lcd_sendcommand(0x0029);	

		//normal display mode on
		HAL_LCD_COMMAND + 0x13,		//main_lcd_sendcommand(0x0013);		

		//display inversion on
		HAL_LCD_COMMAND	+ 0x21,		//main_lcd_sendcommand(0x0021);		

		//n-line inversion
		HAL_LCD_COMMAND	+ 0xc9,		//main_lcd_sendcommand(0x00c9);		
		HAL_LCD_PARAM	+ 0x25,		//main_lcd_senddata(0x0025);

		//super frame inversion
		HAL_LCD_COMMAND	+ 0xb9,		//main_lcd_sendcommand(0x00b9);

		//memory data access control
		HAL_LCD_COMMAND	+ 0x36,		//main_lcd_sendcommand(0x0036);
		HAL_LCD_PARAM	+ 0xc0,		//main_lcd_senddata(0x00c0);

		//bottom row swap
		HAL_LCD_COMMAND	+ 0xb4,		//main_lcd_sendcommand(0x00b4);

		//top row swap
		HAL_LCD_COMMAND	+ 0xb6,		//main_lcd_sendcommand(0x00b6);

		//column address set
		HAL_LCD_COMMAND	+ 0x2a,	 	//main_lcd_sendcommand(0x002a);
		HAL_LCD_PARAM	+ 0x04,		//main_lcd_senddata(0x0004);
		HAL_LCD_PARAM	+ 0x83,		//main_lcd_senddata(0x0083);

		//page address set
		HAL_LCD_COMMAND	+ 0x2b,	  	//main_lcd_sendcommand(0x002b);
		HAL_LCD_PARAM	+ 0x04,		//main_lcd_senddata(0x0004);
		HAL_LCD_PARAM	+ 0x83,		//main_lcd_senddata(0x0083);

		HAL_LCD_COMMAND	+ 0x2c,
		
		HAL_LCD_DELAY	+ 500,		//wait_ARM_cycles(convert_nanosec_to_cycles(500000000)); 
		HAL_LCD_ENDOFTABLE
		
	},

	/* LCD register initialization sequence (LCD3) */
	{
		HAL_LCD_ENDOFTABLE
	},

	/* Initialization S1D13716 registers */
	{                    
		{ REG0018_POWERSAVE,			0x01 },//enable power save mode to set clock.	
		{ REG0014_CLKSRC,				0x00 },//select external CLKI for SYSCLK, PLL source	
		{ REG0010_PLL0,					0x19 },//0xdd },//this setting is 40M,50M is 0xDD 13M is 0x60
		{ REG0011_PLL1,					0x1d }, //0x1c },//this setting is 40M,50M is 0x1C 13M is 0xF0
		{ REG0012_PLL2,					0x20 },
		{ REG0015_SERLCDCLK,			0x21 },//I2C Clock=sysclock/8
		{ REG0014_CLKSRC,				0x31 },//LCDPCLK=sysclock/12
		{ REG0016_LCDPCLKDIV,			0x00 },//lcdpclk predivider = 1/1
		{ REG0018_POWERSAVE,			0x04 },//disable power save mode, internal pll and oscillator disable
	 	{ REGFLAG_DELAY,				0xFF },//delay for pll lock
		{ REG0070_PWMCTRL0,				0x05 },//      
		{ REG007F_PWMWHITECYCLE,		0x3F },      
		{ REG0072_PWMCTRL1,				0x01 }, 
		{ REGFLAG_DELAY,				0x50 },
		{ REG0108_CMCONTROL,			0x01 },//software reset camera mode
		{ REG0108_CMCONTROL,			0x00 },
		{ REG0202_RESIZE,				0x81 },//Reset resizer
		{ REG0202_RESIZE,				0x01 },//Reset resizer
		{ REG0040_LCD1SETTING,			0x03 },//Data bus width 8 bits format 565
		{ REG0044_LCD2SETTING,			0x03 },//Data bus width 8 bits format 565
		{ REG0048_LCD3SETTING,			0x00 },//Not set
		{ REG004E_SCALEUP,				0x00 },//Encode Scale Overlay Disable
		{ REG004C_DISPSETTING,			0x42 },//Overlay with Main  and Overlay is 8 bits and select lcd2 62
		{ REG0036_LCDTRIG,				0x00 },
		{ REG003C_LCDXFER,				0x00 },//lcd auto transfer disable
		{ REG0248_OIMAGE,				0x10 },//The host output image to overlay 00 to main
		{ REG0216_RYC,					0x05 },//Ryc format is 565
		{ REG0220_YUVRGBXLATE0,			0x05 },//YUV,565Default value
		{ REG0222_YUVRGBXLATE1,			0x00 },//yuv/rgb converter is enabled.original UV,YUV format VYUV
		{ REG0202_RESIZE,				0x00 },//Reset and enable resizer03
		{ REG0204_RESIZESX0,			0x00 },
		{ REG0205_RESIZESX1,			0x00 },
		{ REG0206_RESIZESY0,				0x00 },
		{ REG0207_RESIZESY1,				0x00 },
		{ REG0208_RESIZEEX0,				0x7F },//127
		{ REG0209_RESIZEEX1,				0x00 },
		{ REG020A_RESIZEEY0,				0x7F },//128
		{ REG020B_RESIZEEY1,				0x00 },
		{ REG020C_RESIZEHSCALE,			0x01 },//H-scale	1:1
		{ REG020E_RESIZEVSCALE,			0x01 },//V-scale	1:1
		{ REG0210_RESIZEOP,				0x20 },//Scale mode is no scale
		{ REG024A_SWIVELVIEW,			0x00 },//Not swivel, not rotated, not mirriored
		{ REG0224_YUVWRSTART0,			0x00 },//Main window adress
		{ REG0225_YUVWRSTART1,			0x20 },//0x2000 8K
		{ REG0226_YUVWRSTART2,			0x00 },//
		{ REG0240_OSADDR0,				0x00 },//Overlay adress
		{ REG0241_OSADDR1,				0xA0 },//0xc000 so the main window size is 0xc000-0x2000
		{ REG0242_OSADDR2,				0x00 },
		{ REG0244_OHRES,				0x7F },//Overlay width
		{ REG0246_OVRES,				0x7F },//Overlay height
		{ REG0212_MEMHORZRES,			0x7F },//Actual Horizontal Resolution in Pixels -1. jpeg encode use
		{ REG0214_MEMVERTRES,			0x7F },//159
		{ REG0228_XOFFSET0,				0x00 },//Main window's position in overlay
		{ REG0229_XOFFSET1,				0x00 },
		{ REG022A_YOFFSET0,				0x10 },
		{ REG022B_YOFFSET1,				0x00 },
		{ REG0100_CMCLK,				0x02 },//camera clock setting.1 is 1/4 sysclock
		{ REG0102_CMSIGNAL,				0x02 },
		{ REG0104_CMMODE0,				0x08 },
		{ REG0106_CMMODE1,				0x00 },
		{ REGFLAG_ENDOFTABLE,			0x00 }
    },
	

	/* Initialization camera data */
	{
		// VGA MODE FOR OV7645FB
	{ 0x12, 0x80 },
	{ 0x03, 0xa4 },			//0x04----black & white//0xa4----normal
	{ 0x04, 0x30 },
	{ 0x05, 0x88 },
	{ 0x06, 0x60 },
	{ 0x11, 0x00 },			//{ 0x11, 0x00 }, //;value 01 for 15 fps
	{ 0x12, 0x15 },
	{ 0x13, 0xa3 },
	{ 0x14, 0x14 },
	{ 0x15, 0x14 },
	{ 0x1f, 0x41 },
	{ 0x20, 0xd0 },
	{ 0x23, 0xde },
	{ 0x24, 0xa0 },
	{ 0x25, 0x80 },
	{ 0x26, 0xb2 },
	{ 0x27, 0xe0 },			//0xe2----black & white//0xe0----normal
	{ 0x28, 0x20 },
	{ 0x2a, 0x01 },
	{ 0x2b, 0x00 },
	{ 0x2d, 0x05 },
	{ 0x2f, 0x9d },
	{ 0x30, 0x00 },
	{ 0x31, 0xc4 },
	{ 0x60, 0x86 },
	{ 0x61, 0xe0 },
	{ 0x62, 0x88 },
	{ 0x63, 0x11 },
	{ 0x64, 0x89 },
	{ 0x65, 0x00 },
	{ 0x67, 0x94 },
	{ 0x68, 0x7a },
	{ 0x69, 0x08 },
	{ 0x6c, 0x11 },			//0xFF----black & white//0x11----normal
	{ 0x6d, 0x33 },			//0xFF----black & white//0x33----normal
	{ 0x6e, 0x22 },			//0xFF----black & white//0x22----normal
	{ 0x6f, 0x00 },			
	{ 0x74, 0x20 },			//{ 0x74, 0x60 },  low light use 0x60
	{ 0x75, 0x0e },			//{ 0x75, 0x06 },
	{ 0x77, 0xc4 },			//{ 0x77, 0xb5 },
	//{ 0x79, 0x80 },			//set----black & white//remove----normal
	//{ 0x7a, 0x80 },			//set----black & white//remove----normal
	{ REGFLAG_ENDOFTABLE,0xFFFF}	//for end
	}	
};
#elif( MODEL == 1 )
HAL_STRUCT HAL_STRUCT_NAME =
{
	50000000,					//PllClk 50M
	32768,						//internal OSC frequency
	0x02200000,					//dwBaseAddress	
	0x00000000,					//dwRegisterOffset
	0x00000000,					//dwMemoryOffset

	640, 480,					//wCam1Width, wCam1Height

	0,							//dwRequiredVRAM
	0,							//dwFlags

	/* LCD register initialization sequence (LCD1) */
	{
		HAL_LCD_DELAY	+ 100,

		HAL_LCD_COMMAND + 0x2C, 

		HAL_LCD_DELAY	+ 100,
		HAL_LCD_COMMAND + 0x02, 
		HAL_LCD_COMMAND	+ 0x01,

		HAL_LCD_DELAY	+ 100,
		HAL_LCD_COMMAND + 0x2A, 
		HAL_LCD_COMMAND	+ 0xD5,			//213
		
		HAL_LCD_DELAY	+ 100,
		HAL_LCD_COMMAND + 0x2B, 
		HAL_LCD_COMMAND	+ 0xA0,

		HAL_LCD_DELAY	+ 100,
		HAL_LCD_COMMAND + 0x26, 
		HAL_LCD_COMMAND	+ 0x0F,

		HAL_LCD_DELAY	+ 100,
		HAL_LCD_COMMAND + 0x10, 
		HAL_LCD_COMMAND	+ 0x02,

		//HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x20, 
		HAL_LCD_COMMAND	+ 0x05,

		//HAL_LCD_DELAY	+ 200,
//		HAL_LCD_COMMAND + 0x01, 
//		HAL_LCD_COMMAND	+ 0x00,

		//HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x40, 
		HAL_LCD_COMMAND	+ 0x00,

		//HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x22, 
		HAL_LCD_COMMAND	+ 0x11,

		//HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x24, 
		HAL_LCD_COMMAND	+ 0x11,

		//HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x28, 
		HAL_LCD_COMMAND	+ 0x00,

		//HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x34, 
		HAL_LCD_COMMAND	+ 0x8d,   //0xCF

		//HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x2E, 
	
		//HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x45, 
		HAL_LCD_COMMAND	+ 0x00,

		//HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x42, 
		HAL_LCD_COMMAND	+ 0x00,
		HAL_LCD_COMMAND	+ 0x7f,

		//HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x43, 
		HAL_LCD_COMMAND	+ 0x00,
		HAL_LCD_COMMAND	+ 0x7F,

		HAL_LCD_DELAY	+ 200,
		HAL_LCD_COMMAND + 0x51, 
		HAL_LCD_ENDOFTABLE
	},


	/* LCD register initialization sequence (LCD2) */
	{

		HAL_LCD_DELAY	+ 100,

		HAL_LCD_COMMAND + 0xD1, 

		HAL_LCD_DELAY	+ 100,
		HAL_LCD_COMMAND + 0x81, 
		HAL_LCD_PARAM	+ 0x28,
		HAL_LCD_PARAM	+ 0x06,

		HAL_LCD_DELAY	+ 100,
		HAL_LCD_COMMAND + 0x20, 
		HAL_LCD_PARAM	+ 0x0F,			
		

⌨️ 快捷键说明

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