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

📄 eprom.c

📁 dvr
💻 C
字号:
#define _EPROM_C_

#include "types.h"


#include "eprom.h"
#include "i2c.h"
#include "gosd.h"
#include "gio.h"
#include "stdio.h"
#include "lan.h"
#include "bit1601.h"

#ifdef RE_CON
#include "rmcon.h"
#endif

#define I2C_BUS_ADDR_AT24	0xA0

//---------------------------------------------------------------------------------
//
//---------------------------------------------------------------------------------
xdata u8	Val_EPROM_CAMERA_OF_SET;
xdata u8	Val_EPROM_CAMERA_OF_RECORD;
xdata u8	Val_EPROM_EACH_QUAD;
xdata u8	Val_EPROM_RECORD_FRAME_RATE;
xdata u8	Val_EPROM_VIDIO_QUALITY;
xdata u8	Val_EPROM_HDD_INDEX;
xdata u8	Val_EPROM_OVERWRAP_RECORD;
xdata u8	Val_EPROM_WRAPPING_FLAG[2];
xdata u8	Val_EPROM_ALARM_DURATION;
xdata u8	Val_EPROM_RECORD_DURATION;
xdata u8	Val_EPROM_HDD_INDEX;
xdata u8	Val_EPROM_SENSOR_ACTIVE = 0x00;
xdata u8	Val_EPROM_SENSOR_USE = 0x00;
xdata u16 	Val_EPROM_PORTNUM_C;
xdata u16 	Val_EPROM_PORTNUM_D;
xdata u8	Val_EPROM_AUDIO_SET;
xdata BYTE	Val_EPROM_AUDIO_CH;
xdata u8	Val_EPROM_DISKID;

#ifdef TEST_AV_OUT_ONOFF
xdata u8 Val_EPROM_AV_OUT_ONOFF;
#endif

#ifdef DISPLAY_IP_ADDRESS
xdata u8 Val_EPROM_rm_IP[4]      = {0,0,0,0};
xdata u8 Val_EPROM_rm_SumMask[4] = {0,0,0,0};
xdata u8 Val_EPROM_rm_Gateway[4] = {0,0,0,0};
xdata u8 Val_EPROM_rm_DNS[4]     = {0,0,0,0};
xdata u8 Val_gv_show_rm_IP  = 0;//bit 0->0:disable, 1:enable
                                //bit 6->1:erase ip address display in monitor
                                //bit 7->1:Show IP Address flag.(refresh ip address in monitor)
#endif

#ifdef POWER_ON_RECORD
xdata u8 Val_EPROM_POWER_ON_RECORD;
#endif


data u8 defBrightness;
data u8 defContrast;
data u8 defSaturation;
data u8 defColorTemp;

//===============================================================================
//
//===============================================================================
u8 EPROM_SetUp_data_Read(u8 index)
{
	xdata u8 dataa;

	dataa = i2c_pkt_read(I2C_BUS_ADDR_AT24,index);

#ifdef DEBUG_EPROM
	printf("\n\rEPROM: Read  [%02x] = %02x", (u16) index, (u16)dataa);
#endif

	return dataa;
}

//===============================================================================
//
//===============================================================================
void EPROM_SetUp_data_Write(u8 index, u8 dataa)
{
#ifdef DEBUG_EPROM
	printf("\n\rEPROM: Write [%02x] = %02x", (u16) index, (u16)dataa);
#endif

	i2c_pkt_write(I2C_BUS_ADDR_AT24,index,dataa);
	delay_time(350, 5); // 5m sec
}

//===============================================================================
//
//===============================================================================
void EPROM_Init(void)
{
	xdata u8 i;

	for(i=0x00;i<0xFF;i++)
	{
#ifdef PWRCV2
		if((i!=EPROM_DISKID)&&(i!=EPROM_DISKID_POOL))
#endif
			if(	(i!=EPROM_NET_MAC0)&&
				(i!=EPROM_NET_MAC1)&&
				(i!=EPROM_NET_MAC2)&&
				(i!=EPROM_NET_MAC3)&&
				(i!=EPROM_NET_MAC4)&&
				(i!=EPROM_NET_MAC5)
				)
				EPROM_SetUp_data_Write(i, 0x00);
	}

	EPROM_SetUp_data_Write(EPROM_VERSION, ROM_VERSION_NUM);

	Val_EPROM_EACH_QUAD 			= 0x00;
	Val_EPROM_CAMERA_OF_SET			= 0x00;
	Val_EPROM_CAMERA_OF_RECORD   	= 0x00;
	Val_EPROM_VIDIO_QUALITY 		= 0x02;
	Val_EPROM_RECORD_FRAME_RATE 	= 0x00;
	Val_EPROM_ALARM_DURATION 		= 0;
	Val_EPROM_RECORD_DURATION		= 10;
	Val_EPROM_OVERWRAP_RECORD 		= 1;
	Val_EPROM_HDD_INDEX				= 0; // MASTER
	Val_EPROM_SENSOR_USE			= 0x00;
	Val_EPROM_SENSOR_ACTIVE			= 0x00;
	Val_EPROM_PORTNUM_C				= NETPORT_SERVER;
	Val_EPROM_PORTNUM_D				= NETPORT_VIDEOP;
	Val_EPROM_AUDIO_SET				= 0x00; // Mute Off, Audio Record Off
	Val_EPROM_AUDIO_CH				= 0x00; // default channel 1
	
#ifdef TEST_AV_OUT_ONOFF
        Val_EPROM_AV_OUT_ONOFF=0x00;
        EPROM_SetUp_data_Write(EPROM_AV_OUT_ONOFF, Val_EPROM_AV_OUT_ONOFF);
#endif

#ifdef DISPLAY_IP_ADDRESS
        for(i=0;i<4;i++)
        {
        	Val_EPROM_rm_IP[i] = 0;
        	Val_EPROM_rm_SumMask[i] = 0;
        	Val_EPROM_rm_Gateway[i] = 0;
        	Val_EPROM_rm_DNS[i] = 0;
        	EPROM_Write_IP_Address();
        }
        Val_gv_show_rm_IP = 0;
        EPROM_SetUp_data_Write(EPROM_SHOW_IP_ADDRESS,Val_gv_show_rm_IP);
#endif

#ifdef POWER_ON_RECORD
	Val_EPROM_POWER_ON_RECORD = 0;
        EPROM_SetUp_data_Write(EPROM_POWER_ON_RECORD, Val_EPROM_POWER_ON_RECORD);
#endif

	EPROM_SetUp_data_Write(EPROM_EACH_QUAD, Val_EPROM_EACH_QUAD);
	EPROM_SetUp_data_Write(EPROM_CAMERA_OF_SET, Val_EPROM_CAMERA_OF_SET);
	EPROM_SetUp_data_Write(EPROM_CAMERA_OF_RECORD, Val_EPROM_CAMERA_OF_RECORD);
	EPROM_SetUp_data_Write(EPROM_VIDIO_QUALITY, Val_EPROM_VIDIO_QUALITY);
	EPROM_SetUp_data_Write(EPROM_RECORD_FRAME_RATE, Val_EPROM_RECORD_FRAME_RATE);
	EPROM_SetUp_data_Write(EPROM_ALARM_DURATION, Val_EPROM_ALARM_DURATION);
	EPROM_SetUp_data_Write(EPROM_RECORD_DURATION, Val_EPROM_RECORD_DURATION);
	EPROM_SetUp_data_Write(EPROM_OVERWRAP_SELECT, Val_EPROM_OVERWRAP_RECORD);
	EPROM_SetUp_data_Write(EPROM_HDD_INDEX, Val_EPROM_HDD_INDEX);
	EPROM_SetUp_data_Write(EPROM_SENSOR_USE, Val_EPROM_SENSOR_USE);
	EPROM_SetUp_data_Write(EPROM_SENSOR_ACTIVE, Val_EPROM_SENSOR_ACTIVE);
	EPROM_SetUp_data_Write(EPROM_AUDIO_SET, Val_EPROM_AUDIO_SET);	
	EPROM_SetUp_data_Write(EPROM_AUDIO_CHANNEL, Val_EPROM_AUDIO_CH);
	EPROM_SetUp_data_Write(EPROM_RECORDING_2_FLAG,0x00);
	for(i=0;i<6;i++) EPROM_SetUp_data_Write(EPROM_SCHEDULE_BASE+i,0x55);
	for(i=0;i<6;i++) EPROM_SetUp_data_Write(EPROM_PASSWORD_BASE+i,0x01);

	xioWriteByte(QUAD_REG_CH_STAT, Val_EPROM_CAMERA_OF_SET);	// Quad REGISTER setup

#ifdef LANIF
	// we do not touch MAC address field
	//for(i=0;i<6;i++)	EPROM_SetUp_data_Write(EPROM_NET_MAC0+i, i*10);	// Default MAC address is 20:21:22:23:24:25
	EPROM_SetUp_data_Write(EPROM_NET_GATEWAY0, 0xC0);		// Default gateway is 192.168.1.254 (c0.a8.1.fe)
	EPROM_SetUp_data_Write(EPROM_NET_GATEWAY1, 0xa8);
	EPROM_SetUp_data_Write(EPROM_NET_GATEWAY2, 0x01);
	EPROM_SetUp_data_Write(EPROM_NET_GATEWAY3, 0xfe);
	EPROM_SetUp_data_Write(EPROM_NET_IP0, 0xC0);			// Default IP is 192.168.1.90 (c0.a8.1.5a)
	EPROM_SetUp_data_Write(EPROM_NET_IP1, 0xA8);
	EPROM_SetUp_data_Write(EPROM_NET_IP2, 0x01);
	EPROM_SetUp_data_Write(EPROM_NET_IP3, 0x5A);
	EPROM_SetUp_data_Write(EPROM_NET_SUB2, 0xff);			// Default subnet mask is 255.255.255.0
	EPROM_SetUp_data_Write(EPROM_NET_SUB3, 0x00);
	EPROM_SetUp_data_Write(EPROM_NET_ATTRIB, 0x01);	// Default attribute is bit7 on for accepting client
	EPROM_SetUp_data_Write(EPROM_NET_CPORT_H, (u8)(Val_EPROM_PORTNUM_C>>8));
	EPROM_SetUp_data_Write(EPROM_NET_CPORT_L, (u8) Val_EPROM_PORTNUM_C);
	EPROM_SetUp_data_Write(EPROM_NET_DPORT_H, (u8)(Val_EPROM_PORTNUM_D>>8));
	EPROM_SetUp_data_Write(EPROM_NET_DPORT_L, (u8) Val_EPROM_PORTNUM_D);
#endif
}

//===============================================================================
//
//===============================================================================
void EPROM_Read_All(void)
{
#ifdef TEST_AV_OUT_ONOFF
        Val_EPROM_AV_OUT_ONOFF=EPROM_SetUp_data_Read(EPROM_AV_OUT_ONOFF);
#endif
#ifdef DISPLAY_IP_ADDRESS
        EPROM_Read_IP_Address();
        Val_gv_show_rm_IP = EPROM_SetUp_data_Read(EPROM_SHOW_IP_ADDRESS);
#endif
#ifdef POWER_ON_RECORD
	Val_EPROM_POWER_ON_RECORD =	EPROM_SetUp_data_Read(EPROM_POWER_ON_RECORD);
#endif
	Val_EPROM_EACH_QUAD =		EPROM_SetUp_data_Read(EPROM_EACH_QUAD);
	Val_EPROM_CAMERA_OF_SET =	EPROM_SetUp_data_Read(EPROM_CAMERA_OF_SET);
	Val_EPROM_CAMERA_OF_RECORD = 	EPROM_SetUp_data_Read(EPROM_CAMERA_OF_RECORD);
	Val_EPROM_VIDIO_QUALITY =	EPROM_SetUp_data_Read(EPROM_VIDIO_QUALITY);
	Val_EPROM_RECORD_FRAME_RATE =	EPROM_SetUp_data_Read(EPROM_RECORD_FRAME_RATE);
	Val_EPROM_ALARM_DURATION =	EPROM_SetUp_data_Read(EPROM_ALARM_DURATION);
	Val_EPROM_WRAPPING_FLAG[0] =	EPROM_SetUp_data_Read(EPROM_M_WRAPPING_FLAG);
	Val_EPROM_RECORD_DURATION =	EPROM_SetUp_data_Read(EPROM_RECORD_DURATION);
	Val_EPROM_OVERWRAP_RECORD =	EPROM_SetUp_data_Read(EPROM_OVERWRAP_SELECT);
	Val_EPROM_HDD_INDEX = 		EPROM_SetUp_data_Read(EPROM_HDD_INDEX);
	Val_EPROM_WRAPPING_FLAG[1]  =	EPROM_SetUp_data_Read(EPROM_S_WRAPPING_FLAG);
	Val_EPROM_SENSOR_USE = 		EPROM_SetUp_data_Read(EPROM_SENSOR_USE);
	Val_EPROM_SENSOR_ACTIVE = 	EPROM_SetUp_data_Read(EPROM_SENSOR_ACTIVE);
	Val_EPROM_PORTNUM_C = 		EPROM_Read_NetPortNum(EPROM_NET_CPORT_H);
	Val_EPROM_PORTNUM_D = 		EPROM_Read_NetPortNum(EPROM_NET_DPORT_H);
	Val_EPROM_AUDIO_SET = 		EPROM_SetUp_data_Read(EPROM_AUDIO_SET);
	Val_EPROM_AUDIO_CH = 			EPROM_SetUp_data_Read(EPROM_AUDIO_CHANNEL);

}


//===============================================================================
//
//===============================================================================
u16 EPROM_Read_NetPortNum(u8 port)
{
	u16 ret;

	ret = EPROM_SetUp_data_Read(port);
	ret = ((ret<<8)&0xff00) | (u16) EPROM_SetUp_data_Read(port+1);
	
	return ret;
}

//===============================================================================
//
//===============================================================================
#ifdef DISPLAY_IP_ADDRESS
void EPROM_Read_IP_Address(void)
{
	u8 i;
        for(i=0;i<4;i++)
        {
        	Val_EPROM_rm_IP[i]      = EPROM_SetUp_data_Read(EPROM_IP_ADDRESS_01 + i);
                Val_EPROM_rm_SumMask[i] = EPROM_SetUp_data_Read(EPROM_IP_SUMMASK_01 + i);
        	Val_EPROM_rm_Gateway[i] = EPROM_SetUp_data_Read(EPROM_IP_GATEWAY_01 + i);
        	Val_EPROM_rm_DNS[i]     = EPROM_SetUp_data_Read(EPROM_IP_DNS_01     + i);
        }
}

void EPROM_Write_IP_Address(void)
{
	u8 i;
        for(i=0;i<4;i++)
        {
        	EPROM_SetUp_data_Write(EPROM_IP_ADDRESS_01+i,Val_EPROM_rm_IP[i]);
        	EPROM_SetUp_data_Write(EPROM_IP_SUMMASK_01+i,Val_EPROM_rm_SumMask[i]);
        	EPROM_SetUp_data_Write(EPROM_IP_GATEWAY_01+i,Val_EPROM_rm_Gateway[i]);
        	EPROM_SetUp_data_Write(EPROM_IP_DNS_01+i,Val_EPROM_rm_DNS[i]);
        }
}
#endif


#if USE_ADJ
void EPROM_Default (u8 bMode)
{
    defBrightness = 0xAA;//0x2D;

    defContrast   = 0x75;//20051104 david modify 0x64;//0x3C;

    defSaturation = 0xBA;//20051104 david modify 0xDC;//0x46;

    defColorTemp = 0x45;//20051104 david modify 0x64;



    switch (bMode)
    {
        case 1:
            EPROM_SetUp_data_Write(EPROM_ADDR_BRIGHTNESS_40, defBrightness);
            EPROM_SetUp_data_Write(EPROM_ADDR_CONTRAST_40, defContrast);
            EPROM_SetUp_data_Write(EPROM_ADDR_SATURATION_40, defSaturation);
            EPROM_SetUp_data_Write(EPROM_ADDR_COLORTEMP_40, defColorTemp);
            YUV_SetBrightness(YUV_MAD_1, defBrightness);
            YUV_SetContrast(YUV_MAD_1, defContrast);
            YUV_SetSaturation(YUV_MAD_1, defSaturation);
            YUV_SetColorTemp(YUV_MAD_1, defColorTemp);
            break;

        case 2:
            EPROM_SetUp_data_Write(EPROM_ADDR_BRIGHTNESS_42, defBrightness);
            EPROM_SetUp_data_Write(EPROM_ADDR_CONTRAST_42, defContrast);
            EPROM_SetUp_data_Write(EPROM_ADDR_SATURATION_42, defSaturation);
            EPROM_SetUp_data_Write(EPROM_ADDR_COLORTEMP_42, defColorTemp);
            YUV_SetBrightness(YUV_MAD_2, defBrightness);
            YUV_SetContrast(YUV_MAD_2, defContrast);
            YUV_SetSaturation(YUV_MAD_2, defSaturation);
            YUV_SetColorTemp(YUV_MAD_2, defColorTemp);
            break;

        case 3:
            EPROM_SetUp_data_Write(EPROM_ADDR_BRIGHTNESS_48, defBrightness);
            EPROM_SetUp_data_Write(EPROM_ADDR_CONTRAST_48, defContrast);
            EPROM_SetUp_data_Write(EPROM_ADDR_SATURATION_48, defSaturation);
            EPROM_SetUp_data_Write(EPROM_ADDR_COLORTEMP_48, defColorTemp);
            YUV_SetBrightness(YUV_MAD_3, defBrightness);
            YUV_SetContrast(YUV_MAD_3, defContrast);
            YUV_SetSaturation(YUV_MAD_3, defSaturation);
            YUV_SetColorTemp(YUV_MAD_3, defColorTemp);
            break;

        case 4:
            EPROM_SetUp_data_Write(EPROM_ADDR_BRIGHTNESS_4A, defBrightness);
            EPROM_SetUp_data_Write(EPROM_ADDR_CONTRAST_4A, defContrast);
            EPROM_SetUp_data_Write(EPROM_ADDR_SATURATION_4A, defSaturation);
            EPROM_SetUp_data_Write(EPROM_ADDR_COLORTEMP_4A, defColorTemp);
            YUV_SetBrightness(YUV_MAD_4, defBrightness);
            YUV_SetContrast(YUV_MAD_4, defContrast);
            YUV_SetSaturation(YUV_MAD_4, defSaturation);
            YUV_SetColorTemp(YUV_MAD_4, defColorTemp);
            break;

        default:
            break;
    }


}
#endif

⌨️ 快捷键说明

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