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

📄 ade7758p.h

📁 嵌入式单片机开发,嵌入式单片机开发,嵌入式单片机开发
💻 H
📖 第 1 页 / 共 3 页
字号:
  for(l=0;l<18;l++)
  	{
  		value2=z;
         	value2=value2*value2;
         	if(value2>value1)
         	  	{
         	  		z_max=z;
                  		z=(z/2)+(z_min/2); 
         	   	}
         	else
         		if(value2<value1)
         			{
         				z_min=z;
                      		z=(z/2)+(z_max/2);
         			}
         		else
         			break;
  	 }
  value1=z;
  return value1;
 }


void kw7758_use(unsigned long *point)
{unsigned long b_kw,b_div,b_div_add;
	b_kw=CK_KW;
	b_div=kw_div;
	b_div_add=kw_div_add;
	*point=(*point)*((100000*b_div_add)/(b_div*b_kw))+(((*point)*((100000*b_div_add)%(b_div*b_kw)))/(b_div*b_kw)); 
}

struct spi7758ftype{
               unsigned int  kw_gain;               
               unsigned char phase;
    };
//add 2004-10-12
const struct spi7758ftype table_7758_f_1000[]=
{//from 40---->65 step 0 dot 5
// a--- 2a 2b 2c  b--- 3f 40 41

  {0xffec,0xf8},// f 40 0
  {0xffed,0xf9},//f40 5
  {0xffee,0xf9},//f41 0
  {0xffef,0xfa},//f41 5
  {0xfff0,0xfa},//f42 0  
  {0xfff1,0xfa},//f42 5
  {0xfff2,0xfb},//f43 0
  {0xfff3,0xfb},//f43 5
  {0xfff4,0xfc},//f44 0
  {0xfff5,0xfc},//f44 5
  {0xfff6,0xfc},//f45 0
  {0xfff7,0xfd},//f45 5
  {0xfff8,0xfd},//f46 0
  {0xfff9,0xfe},//f46 5
  {0xfffa,0xfe},//f47 0
  {0xfffb,0xfe},//f47 5
  {0xfffc,0xff},//f 48 0
  {0xfffd,0xff},//f48 5
  {0xfffe,0},//f49 0
  {0xffff,0},//f49 5
  {0,0},//f50 0
  {1,0},//f50 5
  {2,0},//f51 0
  {3,1},//f51 5
  {4,1},//f52 0
  {5,2},//f52 5
  {6,2},//f53 0
  {0x7,2},//f53 5
  {0x8,3},//f54 0
  {0x9,3},//f54 5
  {10,4},//f55 0
  {11,4},//f55 5
  {12,4},//f56 0
  {13,5},//f56 5
  {14,5},//f57 0
  {15,0x6},//f57 5
  {16,0x6},//f58 0
  {17,0x6},//f58 5
  {18,0x7},//f59 0
  {19,0x7},//f59 5
  {20,0x8},//f60 0
  {21,0x8},//f60 5
  {22,0x8},//f61 0
  {23,0x9},//f61 5
  {24,0x9},//f62 0
  {25,10},//f62 5
  {26,10},//f63 0
  {27,10},//f63 5
  {28,11},//f64 0
  {29,11},//f64 5
  {30,12}//f65 0
};

//add 2004-10-12
const struct spi7758ftype table_7758_f_2200[]=
{//from 40---->65 step 0 dot 5
// a--- 2a 2b 2c  b--- 3f 40 41

  {0xffec,0xfc},// f 40 0
  {0xffed,0xfd},//f40 5
  {0xffee,0xfd},//f41 0
  {0xffef,0xfd},//f41 5
  {0xfff0,0xfd},//f42 0  
  {0xfff1,0xfd},//f42 5
  {0xfff2,0xfe},//f43 0
  {0xfff3,0xfe},//f43 5
  {0xfff4,0xfe},//f44 0
  {0xfff5,0xfe},//f44 5
  {0xfff6,0xfe},//f45 0
  {0xfff7,0xff},//f45 5
  {0xfff8,0xff},//f46 0
  {0xfff9,0xff},//f46 5
  {0xfffa,0xff},//f47 0
  {0xfffb,0xff},//f47 5
  {0xfffc,0},//f 48 0
  {0xfffd,0},//f48 5
  {0xfffe,0},//f49 0
  {0xffff,0},//f49 5
  {0,0},//f50 0
  {2,0},//f50 5
  {3,0},//f51 0
  {4,0},//f51 5
  {2,1},//f52 0
  {3,1},//f52 5
  {4,1},//f53 0
  {0x5,1},//f53 5
  {0x6,1},//f54 0
  {0x7,1},//f54 5
  {0x8,1},//f55 0
  {0x9,1},//f55 5
  {10,1},//f56 0
  {11,1},//f56 5
  {12,1},//f57 0
  {13,1},//f57 5
  {13,1},//f58 0
  {14,1},//f58 5
  {12,2},//f59 0
  {13,2},//f59 5
  {13,2},//f60 0
  {14,2},//f60 5
  {14,2},//f61 0
  {15,2},//f61 5
  {16,2},//f62 0
  {16,2},//f62 5
  {17,2},//f63 0
  {18,2},//f63 5
  {19,2},//f64 0
  {19,2},//f64 5
  {20,2}//f65 0
};

const struct spi7758ftype table_7758_f_577[]=
{//from 40---->65 step 0 dot 5
// a--- 2a 2b 2c  b--- 3f 40 41
// 57dot7 1dot5(6) 3 xiang 4 xian
  {0,0},// f 40 0
  {0,0},//f40 5
  {0,0},//f41 0
  {0,0},//f41 5
  {0,0},//f42 0  
  {0,0},//f42 5
  {0,0},//f43 0
  {0,0},//f43 5
  {0,0},//f44 0
  {0,0},//f44 5
  {0xfff5,0xff},//f45 0
  {0xfff7,0xff},//f45 5
  {0xfff9,0xff},//f46 0
  {0xfffa,0xff},//f46 5
  {0xfffc,0xff},//f47 0
  {0xfffd,0xff},//f47 5
  {0xfffb,0},//f 48 0
  {0xfffd,0},//f48 5
  {0xfffe,0},//f49 0
  {0xffff,0},//f49 5
  {0,0},//f50 0
  {2,0},//f50 5
  {4,0},//f51 0
  {5,0},//f51 5
  {6,0},//f52 0
  {7,0},//f52 5
  {7,1},//f53 0
  {0x8,1},//f53 5
  {0x7,2},//f54 0
  {0x8,2},//f54 5
  {0x9,2},//f55 0
  {0xa,2},//f55 5
  {11,2},//f56 0
  {12,2},//f56 5
  {13,2},//f57 0
  {14,2},//f57 5
  {14,2},//f58 0
  {15,2},//f58 5
  {14,3},//f59 0
  {15,3},//f59 5
  {16,3},//f60 0
  {17,3},//f60 5
  {17,3},//f61 0
  {18,3},//f61 5
  {18,3},//f62 0
  {19,3},//f62 5
  {20,3},//f63 0
  {21,3},//f63 5
  {21,3},//f64 0
  {22,3},//f64 5
  {0,0}//f65 0
};

unsigned char second_for_7758;


unsigned int rtable_7758_f_gain(ufas)
unsigned char ufas;
{unsigned int value;
  	value=0;
	switch(display_enable[31])
		{
			case 0://l577v
					value=table_7758_f_577[ufas].kw_gain;
					break;
			case 1://l100v
					value=table_7758_f_1000[ufas].kw_gain;
					break;
			default: //l220v
					value=table_7758_f_2200[ufas].kw_gain;
					break;
		}
	return value;
}
unsigned char rtable_7758_f_phase(ufas)
unsigned char ufas;
{unsigned char value;
  	value=0;
	switch(display_enable[31])
		{
			case 0://l577v
					value=table_7758_f_577[ufas].phase;
					break;
			case 1://l100v
					value=table_7758_f_1000[ufas].phase;
					break;
			default: //l220v
					value=table_7758_f_2200[ufas].phase;
					break;
		}
	return value;
}
 // delay 1 ms
 delay_1ms_7758()
{unsigned long l;
 for(l=0;l<350;l++)
 	{;}
}   
// add by zhanglong ---->start
// add time 2005-09-22
unsigned char great_set16kw()
{unsigned char j,k;
 union lb{
       unsigned long l;       
       unsigned char a[4];
        }m;
 k=0;
 for(j=0;j<4;j++)
 	m.a[j]=RAM[R_KW_A+j];
if(m.l<kw_set7758_16h)
	k=k+1;
 for(j=0;j<4;j++)
 	m.a[j]=RAM[R_KW_B+j];
if(m.l<kw_set7758_16h)
	k=k+1;
 for(j=0;j<4;j++)
 	m.a[j]=RAM[R_KW_C+j];
if(m.l<kw_set7758_16h)
	k=k+1;
if(k>1)
	return 0;

if((status_5460_0&0x10)!=0)//a-
	{
		 for(j=0;j<4;j++)
 			m.a[j]=RAM[R_KW_A+j];
		 if(m.l>=kw_set7758_16h)
		 	return 1;		
	}
if((status_5460_0&0x20)!=0)//a-
	{
		 for(j=0;j<4;j++)
 			m.a[j]=RAM[R_KW_B+j];
		 if(m.l>=kw_set7758_16h)
		 	return 1;		
	}
if((status_5460_0&0x40)!=0)//a-
	{
		 for(j=0;j<4;j++)
 			m.a[j]=RAM[R_KW_C+j];
		 if(m.l>=kw_set7758_16h)
		 	return 1;		
	}
 return 0;
}
  


// add by zhanglong ---->end


 
void mode7758()
{union lc1{
       		unsigned long l;      
       		unsigned char c[4];
        	}l7758;
unsigned char m,n,s,h,zl;
unsigned long k[16],l1,l2;
unsigned int num,iabc[3];
unsigned char *fp1,*fp2;
unsigned int fas,fas1;
unsigned char ufas;
unsigned char f_changed;
//unsigned int f_use,f_use1;
	h=0;
   	if(second_for_7758!=RSOFT_RTC_SECOND)
    	{
    		second_for_7758=RSOFT_RTC_SECOND;


//add  2005-2-22
		read7758(0x16,1);
         	if(1==r7758ok)
         		{
         			zl=wr_data[0];
				data_addr.addri=EPLOCK_7758+4*(0x16-0x13);
			 	if(1==read(EPLOCK,4))
			 		{
						if(RAM[R_KWHMODE_F]==4)						
							{							
			         				if(lost_v_quadrant==lost_v_a)
			         	   				wr_data[0]=wr_data[0]&0xfb;
			         				if(lost_v_quadrant==lost_v_b)
			         	   				wr_data[0]=wr_data[0]&0xf7;
			         				if(lost_v_quadrant==lost_v_c)
			         	   				wr_data[0]=wr_data[0]&0xef;
			         				if(lost_v_quadrant==lost_v_ab)
			         	   				wr_data[0]=wr_data[0]&0xf3;
			         				if(lost_v_quadrant==lost_v_ac)
			         	   				wr_data[0]=wr_data[0]&0xeb;
			         				if(lost_v_quadrant==lost_v_bc)
			         	   				wr_data[0]=wr_data[0]&0xe7;			 					
							}
						else
							{
								if(RAM[R_KWHMODE_F]==0)
									{	
										if((progfunction_biaotype==type_3_4)&&(1==great_set16kw()))
											{
											wr_data[0]=wr_data[0]|0x20;		
											}
									}							
							}
						if(zl!=wr_data[0])
			         			write7758(0x16,1);	
			 			}
         				}

 		//add 2005-2-22
     		num=time_2s_7758;
      		time_2s_7758=0;
    		system_control_time0=system_control_time0+5;
     		s=0;
      		for(m=0;m<16;m++)
      	   		k[m]=0;      
      //v a b c
      		for(n=0;n<3;n++)
      			{ 
      				l7758.l=0;
         			read7758(0xd+n,3);
         			if(1==r7758ok)
                			{ 
                				h=h+1;//ok
                  				for(m=0;m<3;m++)
      	                  				l7758.c[m]=wr_data[2-m];
                   				k[n]=l7758.l/CK_V;
                   				l7758.l=(10000*(l7758.l%CK_V))/CK_V+10000*k[n];//l5349 2729
                				if(num>9700)
                  					{ 
                     					if((wr_data[0]<2)||(wr_data[0]>0x27))
                    	       				{
                              						if(n==0) 
											low_v_a=1;
                              						else
                              							{
                              								if(n==1) 
													low_v_b=1;
                              								else 
													low_v_c=1;
                              							}
                    	        				}
                   		 				else
                    	    					{
                    	    						if(n==0) 
											low_v_a=0;
                              						else
                              							{
                              								if(n==1) 
													low_v_b=0;
                              								else 
													low_v_c=0;
                              							}
                    	    					}
                    					if(l7758.l>5000000) 
									l7758.l=0;
                    					if(l7758.l<200000) 
									l7758.l=0;
                       					long_to_8bcd(l7758.l,&RAM[R_V_A+4*n]);
                					}
         					}
      					}
//i a b c
  			 data_addr.addri=EPLOCK_K_I_A;
   			if(0==read(EPLOCK,6))
   				{
   					data_addr.addri=EP1_K_I_A;
         				read(EP1,6);
   				}
  	 		for(m=0;m<3;m++)
        			{
        				iabc[m]=wr_data[2*m]*256+wr_data[2*m+1];   	
         				if(iabc[m]==0) 
						iabc[m]=21900;
   	  			}
   			for(n=0;n<3;n++)
     				{
         				l7758.l=0;        
         				read7758(0xa+n,3);
         				if(1==r7758ok)
         					{
         						h=h+1;
                					for(m=0;m<3;m++)
      	                					l7758.c[m]=wr_data[2-m];
							if(current_type_big==current_type)
								{
								l7758.l=(1000*(l7758.l/iabc[n]))+((1000*(l7758.l%iabc[n]))/iabc[n]);
								}
							else
								{
								l7758.l=(100*(l7758.l/iabc[n]))+((100*(l7758.l%iabc[n]))/iabc[n]);
								}

⌨️ 快捷键说明

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