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

📄 data_check.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 2 页
字号:
unsigned char huifu_use(addr,num)
unsigned int addr;
unsigned char num;
{unsigned char l,value;
data_addr.addri=addr;
value=0;
if(1==read(FM,num))
   {
   	value=1;
     	for(l=0;l<num;l++)
 	  	if(0==testbcd(wr_data[l]))
 	       	 value=0;
    	if(value==1)
 		 for(l=0;l<num;l++)
 			RAM[addr+l]=wr_data[l];
    }
return value;
}

// must<50 byte
void huifu_use_fm_fm1_global(addr,num,bcd)
unsigned int addr;
unsigned char num,bcd;
{unsigned char l,value;
  unsigned char a[50],b[50];
  data_addr.addri=addr;
  if(1==read(FM,num))
  	{
  		for(l=0;l<num;l++)
  	       	a[l]=wr_data[l];
         	data_addr.addri=FM_YONGHUHAO_H_BAK-FM_YONGHUHAO_H+addr;
         	if(1==read(FM,num))
         		{
         			for(l=0;l<num;l++)
  	            			b[l]=wr_data[l]-0x33;
                		value=1;
                		for(l=0;l<num;l++)
                			if(a[l]!=b[l]) 
						value=0;
                		if(1==value)
                			for(l=0;l<num;l++)
                				RAM[addr+l]=a[l];
                		else
                			{
                				value=1;
                       			for(l=0;l<num;l++)
                	       			if(RAM[addr+l]!=a[l]) 
								value=0;
                	   			if(0==value)
                	   				{
                	   					value=1;
                              				for(l=0;l<num;l++)
                	             					if(RAM[addr+l]!=b[l]) 
										value=0;
                	         				if(0==value)
                	         					{
                	         	  					if((num==testbcdnum(&a[0],num))||(0==bcd))// no bcd  fm----->
                	         	         					for(l=0;l<num;l++)
                		                      					RAM[addr+l]=a[l]; 
                	         	  					else
                	         	  	  					if(num==testbcdnum(&b[0],num))
                                               						 for(l=0;l<num;l++)
                		                      						RAM[addr+l]=b[l]; 
                	         					}
                	   				}
                				}
         			}
  		}
}
void huifu_use_fm_fm1(addr,num)
unsigned int addr;
unsigned char num;
{
	huifu_use_fm_fm1_global(addr,num,1);
}

void huifu_nobcd_fm_fm1(addr,num)
unsigned int addr;
unsigned char num;
{
	huifu_use_fm_fm1_global(addr,num,0);
}

// pulse cal (<=40000)
void huifu_fm_to_count(addr,point)
unsigned int addr,*point;
{
  data_addr.addri=addr;
  if(1==read(FM,2))        
        *point=wr_data[0]+256*wr_data[1];
   if(*point>420) 
   	 *point=0;
}



void huifu_data()
{
// shi ya
unsigned int i;
unsigned char l,l1;
program_function();
// shi ya zon ci shu shi jian
huifu_use(R_LOSTV_NUM,6);
// a,b,c,ab,ac,bc shi ya
for(l=0;l<6;l++)
  {
    	huifu_use(R_LOSTV_A_NUM+34*l,34);
    
   }
// CUT
huifu_use(R_CUTV_NUM,6);
watchdog();
// a,b,c,ab,ac,bc shi liu
for(l=0;l<6;l++)
    {
      	huifu_use(R_CUTV_A_NUM+34*l,34);
    }
watchdog();
//guo zai
huifu_use(R_OVER_KW_NUM,6);
//POWER DOWN
huifu_use(R_POWERDOWN_NUM,3);
//PROG NUM
huifu_use(R_PROG_NUM,2);
//CLR KW NUM
huifu_use(R_CLRKW_NUM,2);
//ALL LOST V
huifu_use(R_ALLLOSTV_NUM,6);
// AB C FN XIANG
huifu_use(R_ORDER_KW_A_NUM,9);
//TOTAL ORDER KW
huifu_use(R_ORDER_KW_NUM,6);
//REVERSE  V
huifu_use(R_V_REVERSE_NUM,6);
//BATTERY TIME
huifu_use(R_BATTERY_WORKTIME,3);
//YONGHUHAO BIAOHAO ADDR
huifu_use_fm_fm1(R_YONGHUHAO_L, 18);
//ALARM 
huifu_nobcd_fm_fm1(R_ALARMCONTROL_SPEEK1,6);
//ZHENG XIANG GONG LV SHANG XIAN
huifu_use_fm_fm1(R_KW_F_MAX,3);
huifu_use_fm_fm1(R_KW_R_MAX,3);
// tao fe lv
huifu_use_fm_fm1(R_PRICE_NO1_1,36);
huifu_use_fm_fm1(R_PRICE_NO2_1,36);
huifu_use_fm_fm1(R_PRICE_NO3_1,36);
huifu_use_fm_fm1(R_PRICE_NO4_1,36);
huifu_use_fm_fm1(R_PRICE_NO5_1,36);
huifu_use_fm_fm1(R_ONUS_1,36);
huifu_use_fm_fm1(R_HOLIDAY1,30);
huifu_use_fm_fm1(R_HOLIDAY11,30);
huifu_use_fm_fm1(R_HOLIDAY21,30);
watchdog();
huifu_nobcd_fm_fm1(R_WORKOFFDAY,1);
huifu_use_fm_fm1(R_WORKOFFDAY_PRICE,1);
huifu_use_fm_fm1(R_CHAOBIAORI,2);
huifu_use_fm_fm1(R_CHAOBIAORI2,2);   //----20081220-add--lzh------
huifu_use_fm_fm1(R_CHAOBIAORI3,2);   //----20081220-add--lzh------

huifu_use_fm_fm1(R_HUACHA,1);
huifu_use_fm_fm1(R_XULIANGZHOUQI,1);
huifu_use_fm_fm1(R_PLUSEMODE,4);
huifu_use_fm_fm1(R_KWHMODE_F,1);
huifu_use_fm_fm1(R_KWHMODE_R,1);
huifu_use_fm_fm1(R_KVARHMODE_F,1);
huifu_use_fm_fm1(R_KVARHMODE_R,1);
huifu_use_fm_fm1(R_FREEZE_TIME,4);
huifu_use_fm_fm1(R_LOSTV_CONDITION,5);
// changed by zhanglong ---->start
// huifu_use_fm_fm1(R_LOSTI_CONDITION,4);
// changed by zhanglong ---->end
huifu_use_fm_fm1(R_OVER_KW_CONDITION,4);
huifu_use_fm_fm1(R_OVER_KW_ABC_CONDITION,4);

huifu_use_fm_fm1(R_DISPLAY_TIMER,1);
huifu_use_fm_fm1(R_WAKE_MODE,1);
huifu_use_fm_fm1(R_BOUD,1);
if(RAM[R_BOUD]>5) 
	RAM[R_BOUD]=1;// boud 1200
huifu_use_fm_fm1(R_RECORD_START_TIME,4);
huifu_use_fm_fm1(R_RECORD_INTERVAL_1,12);

huifu_use_fm_fm1(R_PROGRAM_TIME,1);
huifu_use_fm_fm1(R_LOSTV_ACK_TIME,1);
huifu_use_fm_fm1(R_LOSTI_ACK_TIME,1);
huifu_use_fm_fm1(R_ALLLOSTV_CONDITION,5);
huifu_use_fm_fm1(R_KWPLUS_MODE,1);

watchdog();

data_addr.addri=R_PASSWORD_LOCK_TIME_0;
if(1==read(FM,31))
  	{
  		for(i=0;i<20;i++)
       		 RAM[R_PASSWORD_LOCK_TIME_0+i]=wr_data[i];
     		for(i=0;i<10;i++)
     	 		 RAM[R_PASSWORD_LOCK_NUM_0+i]=wr_data[20+i];
     		RAM[R_SECURITY_LOCK_NUM]=wr_data[30];
   	}

huifu_use(R_MAIN_CUOFENG_START_1,16);
huifu_use(R_SUB_CUOFENG_START_1,16);
huifu_use(R_MAIN_CUOFENG_VALUE_CONDITION,6);
huifu_use(R_PRICE_SWITCH,18);
huifu_use(R_CUOFENG_KWH_F,46);
huifu_use(R_BIAOGAI_NUM,12);
//------------------------------------>
// auto display
gdisplay_auto_key_comm();
// check
// data_addr.addri=FM_TIMER_DEMANGCLFM_LOCK;
// if(1==read(FM,2))
//    {
//      RTIMER_DEMANGCLR_LOCK=wr_data[0]+256*wr_data[1];
//      if((wr_data[0]==0)&&(wr_data[1]==0))
//	      RFLAG_DEMANGCLR_LOCK=0;
//      else
//      	      RFLAG_DEMANGCLR_LOCK=1;           
//    }   
 // RUN
 data_addr.addri=FM_STATUS_RUN;
 if(1==read(FM,1))
    	{
    		if(wr_data[0]<5) 
				RSTATUS_RUN=wr_data[0];
     		else 
				RSTATUS_RUN=RUN;
	}
 else 
 		RSTATUS_RUN=RUN;
 // 48hour test
 data_addr.addri=FM_STATUS_TEST_TIMER;
 if(1==read(FM,2))
    	{
    		RSTATUS_TEST_TIMER=wr_data[0]+256*wr_data[1];
     		if((RSTATUS_TEST_TIMER==0)&&(RSTATUS_RUN==TEST))
          		RSTATUS_RUN=RUN;
    	}
// 90DAY LOCK
data_addr.addri=FM_LOCK_90DAY_TIMER;
if(1==read(FM,2))
   	{
   		RLOCK_90DAY_TIMER=wr_data[0]+256*wr_data[1];
     		if((RLOCK_90DAY_TIMER==0)&&(RSTATUS_RUN==LOCK_90DAY))
          		RSTATUS_RUN=RUN;
   	}
if((RSTATUS_RUN>4)||(progfunction_security==no)) 
	RSTATUS_RUN=RUN;         
// dianlinag---------------------------->
// dian liang mo chong(flag)
data_addr.addri=FM_DIANLIANG_ADD1;
if(1==read(FM,2))
   	{
   		Dianliang1.byte=wr_data[0];
     		Dianliang2.byte=wr_data[1];
	}
// mo chong ji shu qi
huifu_fm_to_count(FM_KWH_F_COUNT,&RKWH_F_COUNT);
huifu_fm_to_count(FM_KWH_R_COUN,&RKWH_R_COUNT);
huifu_fm_to_count(FM_KVARH_F_COUNT,&RKVARH_F_COUNT);
huifu_fm_to_count(FM_KVARH_R_COUNT,&RKVARH_R_COUNT);
huifu_fm_to_count(FM_KVARH_1_COUNT,&RKVARH_1_COUNT);
huifu_fm_to_count(FM_KVARH_2_COUNT,&RKVARH_2_COUNT);
huifu_fm_to_count(FM_KVARH_3_COUNT,&RKVARH_3_COUNT);
huifu_fm_to_count(FM_KVARH_4_COUNT,&RKVARH_4_COUNT);
data_addr.addri=FM_STATUS_ZHUANCUN;
if(1==read(FM,3))
  	{
  		if(wr_data[0]<2) 
			rstatus_zhuan_cun=wr_data[0];  // YES NO
   		if(rstatus_zhuan_cun>1) 
			rstatus_zhuan_cun=0;
   		if(wr_data[1]<41)
      			rzhuancun_tpye_ercibiao=wr_data[1];
   		rcurrent_status_zhuancun=wr_data[2];
   	}
data_addr.addri=FM_CURRENT_CHAOBIAORI;
read(FM,1);
if(wr_data[0] > 2)
	Rcurrent_chaobiaori_use = wr_data[0];

// add
// zhancun data hui fu
watchdog();
for(l=0;l<10;l++)
   	{
   		data_addr.addri=FM_ZHUANCUN_BUFFER+l*50;
     		if(1==read(FM,50))
 	  		{
 	  			watchdog();
 	    			if(50==testbcdnum(wr_data,50))
 		  			for(l1=0;l1<50;l1++)
 			 	zhuancun[50*l+l1]=wr_data[l1];
 	   		}
    	}
}















⌨️ 快捷键说明

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