📄 dph.c
字号:
urx_ave+=urx_new;
ury_ave+=ury_new;
if(ad_count>5)
{
ulx_ave-=ulx[0];
uly_ave-=uly[0];
urx_ave-=urx[0];
ury_ave-=ury[0];
for(i=0;i<4;i++)
{
ulx[i]=ulx[i+1];
uly[i]=uly[i+1];
urx[i]=urx[i+1];
ury[i]=ury[i+1];
}
ulx[4]=ulx_new;
uly[4]=uly_new;
urx[4]=urx_new;
ury[4]=ury_new;
ulx_new=(float)ulx_ave/5.0;
uly_new=(float)uly_ave/5.0;
urx_new=(float)urx_ave/5.0;
ury_new=(float)ury_ave/5.0;
}
else
{
ulx[ad_count-1]=ulx_new;
uly[ad_count-1]=uly_new;
urx[ad_count-1]=urx_new;
ury[ad_count-1]=ury_new;
ulx_new=(float)ulx_ave/ad_count;
uly_new=(float)uly_ave/ad_count;
urx_new=(float)urx_ave/ad_count;
ury_new=(float)ury_ave/ad_count;
ad_count++;
}
*/
if(sim==1)
{
ulx_new-=ulx_sim;
uly_new-=uly_sim;
urx_new-=urx_sim;
ury_new-=ury_sim;
}
test.ul_x=ulx_new;
test.ul_y=uly_new;
test.ur_x=urx_new;
test.ur_y=ury_new;
if(prod==1)
{
test.ul_x-=urx_new*compen.kfl;
test.ur_x-=ulx_new*compen.kfr;
test.ul_y-=ury_new*compen.kfl;
test.ur_y-=uly_new*compen.kfr;
}
test.ul=test.ul_x*test.ul_x+test.ul_y*test.ul_y;
test.ul=sqrt(test.ul);
test.ul/=k_gain[gain_l];
test.ur=test.ur_x*test.ur_x+test.ur_y*test.ur_y;
test.ur=sqrt(test.ur);
test.ur/=k_gain[gain_r];
if(prod==1)
{
test.ul*=compen.kbl;
test.ur*=compen.kbr;
}
}
void lrfb(void)
{
float xdata k,kx,ky;
if(lock==0)
{
return;
}
EX1=1;
busy();
LCDS=0x01;
busy();
LCDS=0xc0;
lcddsp(f_b_inf);
key=0xff;
ulx_ave=0;
uly_ave=0;
urx_ave=0;
ury_ave=0;
ad_count=1;
prod=0;
do
{
key=getkey();
if((data_redy==1)&&(sec1s==1))
{
caluxy();
if(menu_state==9)
{
if(cp==0)
{
if(test.ur_x==0) kx=0;
else kx=test.ul_x/(test.ur_x);
if(test.ur_y==0) ky=0;
else ky=test.ul_y/(test.ur_y);
k=(kx+ky)/2;
if((k>=1)||(k<=-1)) k=0;
sprintf(fb_buf," KL_R=%1.4f&",k);
}
else
{
if(test.ul_x==0) kx=0;
else kx=test.ur_x/(test.ul_x);
if(test.ul_y==0) ky=0;
else ky=test.ur_y/(test.ul_y);
k=(kx+ky)/2;
if((k>=1)||(k<=-1)) k=0;
sprintf(fb_buf," KR_L=%1.4f&",k);
}
}
else if(menu_state==10)
{
if(test.ul==0) test.ul=100;
k=gml/test.ul;
sprintf(fb_buf,"KL_g=%1.4f&",k);
}
else if(menu_state==11)
{
if(test.ur==0) test.ur=100;
k=gmr/test.ur;
sprintf(fb_buf,"KR_g=%1.4f&",k);
}
busy();
LCDS=0x80;
lcddsp(fb_buf);
data_redy=0;
sec1s=0;
}
}while((key!=MENU)&&(key!=ENTER)&&(lock==1));
if(key==ENTER)
{
keybit=1;
if(menu_state==9)
{
if(cp==0)
{
compen.kfl=k;
if(compen.kfl<0)
{
kl_r_abs=-compen.kfl;
kl_r_sign=1;
}
else
{
kl_r_abs=compen.kfl;
kl_r_sign=0;
}
sprintf(lcd_buf[10]," KL_R= %1.4f&",kl_r_abs);
if(kl_r_sign==1) lcd_buf[10][7]='-';
else lcd_buf[10][7]='+';
}
else
{
compen.kfr=k;
if(compen.kfr<0)
{
kr_l_abs=-compen.kfr;
kr_l_sign=1;
}
else
{
kr_l_abs=compen.kfr;
kr_l_sign=0;
}
sprintf(lcd_buf[11]," KR_L= %1.4f&",kr_l_abs);
if(kr_l_sign==1) lcd_buf[11][7]='-';
else lcd_buf[11][7]='+';
}
}
else if(menu_state==10)
{
compen.kbl=k;
if((compen.kbl<0)||(compen.kbl>1.0))
compen.kbl=1.0;
sprintf(lcd_buf[8],"KL_g=%1.4f g/mv&",compen.kbl);
}
else if(menu_state==11)
{
compen.kbr=k;
if((compen.kbr<0)||(compen.kbr>1.0))
compen.kbr=1.0;
sprintf(lcd_buf[9],"KR_g=%1.4f g/mv&",compen.kbr);
}
}
}
void state00(void)
{
re_scr=0;
switch(key)
{
case 1:
if(cp==0) cp=3;
else --cp;
if(cp==0)
{
busy();
LCDS=0x80;
}
else if(cp==1)
{
busy();
LCDS=0x88;
}
else if(cp==2)
{
busy();
LCDS=0xc0;
}
else if(cp==3)
{
busy();
LCDS=0xc8;
}
break;
case 2:
cp++;
if(cp>3) cp=0;
if(cp==0)
{
busy();
LCDS=0x80;
}
else if(cp==1)
{
busy();
LCDS=0x88;
}
else if(cp==2)
{
busy();
LCDS=0xc0;
}
else if(cp==3)
{
busy();
LCDS=0xc8;
}
break;
case 3:
if(cp==0)
{
menu_state=1;
cp=0;
re_scr=1;
}
else if(cp==1)
{
menu_state=9;
re_scr=1;
cp=0;
}
else if(cp==2)
{
menu_state=12;
re_scr=1;
cp=0;
}
else if(cp==3)
{
menu_state=13;
re_scr=1;
cp=0;
}
break;
}
}
void state01(void)
{
switch(key)
{
case 3:
if(cp==0)
{
menu_state=3;
re_scr=1;
cp=0;
}
else
{
menu_state=2;
cp=0;
re_scr=1;
}
break;
case 1:
if(cp==0)
{
cp=1;
busy();
LCDS=0xc3;
}
else
{
cp=0;
busy();
LCDS=0x83;
}
break;
case 2:
if(cp==0)
{
cp=1;
busy();
LCDS=0xc3;
}
else
{
cp=0;
busy();
LCDS=0x83;
}
break;
}
}
void state02(void)
{
uchar xdata i,c;
switch(key)
{
case 1:
if(cp==0)
{
cp=1;
busy();
LCDS=0xc9;
}
else
{
cp=0;
busy();
LCDS=0xc1;
}
break;
case 2:
if(cp==0)
{
cp=1;
busy();
LCDS=0xc9;
}
else
{
cp=0;
busy();
LCDS=0xc1;
}
break;
case 3:
if(cp==0)
{
menu_state=14;
cp=0;
re_scr=1;
}
else if(cp==1)
{
menu_state=15;
cp=0;
re_scr=1;
}
break;
}
}
void state14(void)
{
uchar xdata i,c;
switch(key)
{
case 2:
if(cp==1)
{
cp=0;
busy();
LCDS=0x89;
}
else
{
cp=1 ;
busy();
LCDS=0x88;
}
break;
case 1:
busy();
c=LCDR;
busy();
LCDS=0x10;
if(c>=0x39) c=0x30;
else c++;
busy();
LCDD=c;
busy();
LCDS=0x10;
break;
case 3:
menu_state=1;
cp=0;
re_scr=1;
busy();
LCDS=0x88;
for(i=0;i<2;i++)
{
busy();
c=LCDR;
set_buf[i]=c;
lcd_buf[28][8+i]=c;
lcd_buf[4][8+i] =c;
}
busy();
LCDS=0x10;
busy();
LCDS=0x10;
set_buf[2]=0x00;
load_no=atoi(set_buf);
if((load_no>=0)&&(load_no<100))
{
compen.kfl=save_para[load_no].kfl ;
compen.kfr=save_para[load_no].kfr ;
compen.kbl=save_para[load_no].kbl ;
compen.kbr=save_para[load_no].kbr ;
compen.m =save_para[load_no].m ;
/* compen.no =save_para[load_no].no ; */
compen.a =save_para[load_no].a ;
compen.b =save_para[load_no].b ;
compen.c =save_para[load_no].c ;
compen.L_r=save_para[load_no].L_r ;
compen.R_r=save_para[load_no].R_r ;
compen.t =save_para[load_no].t ;
compen.speed=save_para[load_no].speed ;
compen.range=save_para[load_no].range ;
ini_buf();
}
else load_no=0;
break;
}
}
void state15(void)
{
uchar xdata i,c;
switch(key)
{
case 2:
if(cp==1)
{
cp=0;
busy();
LCDS=0x89;
}
else
{
cp++ ;
busy();
LCDS=0x88;
}
break;
case 1:
busy();
c=LCDR;
busy();
LCDS=0x10;
if(c>=0x39) c=0x30;
else c++;
busy();
LCDD=c;
busy();
LCDS=0x10;
break;
case 3:
menu_state=1;
cp=0;
re_scr=1;
busy();
LCDS=0x88;
for(i=0;i<2;i++)
{
busy();
c=LCDR;
set_buf[i]=c;
}
busy();
LCDS=0x10;
busy();
LCDS=0x10;
set_buf[2]=0x00;
save_no=atoi(set_buf);
if((save_no>=0)&&(save_no<100))
{
save_para[save_no].kfl=compen.kfl ;
save_para[save_no].kfr=compen.kfr ;
save_para[save_no].kbl=compen.kbl ;
save_para[save_no].kbr=compen.kbr ;
save_para[save_no].m =compen.m ;
/* save_para[save_no].no =compen.no ; */
save_para[save_no].a =compen.a ;
save_para[save_no].b =compen.b ;
save_para[save_no].c =compen.c ;
save_para[save_no].L_r=compen.L_r ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -