|
楼主 |
发表于 2008-2-22 13:47:25
|
显示全部楼层
ClrLCD();
for(t= 0xffff;t!=0;t--){_nop();_nop();}
Writeline(13,112,xiaozhun1);
Writeline(7,130,xiaozhun2);
Writeline(1,16,"●");//效准X的最小值和Y的最大值
while(Z_var < 3500);//排除误动作
for(;;){
if(Z_var < 3500){
Y_max = temp_var_y;
X_min = temp_var_x;
if((Y_max < 4070)&(Y_max > 3000)&(X_min >300)&(X_min < 1500)){
break;
}
}
}
ClrLCD();
for(t= 0xffff;t!=0;t--){_nop();_nop();}
Writeline(13,112,xiaozhun1);
Writeline(7,130,xiaozhun2);
Writeline(36,214,"●");//效准X的最大值和Y的最大小值
while(Z_var < 3500);//等到按键放开
for(;;){
if(Z_var < 3500){
Y_min = temp_var_y;
X_max = temp_var_x;
if((Y_min < 1000)&(Y_min > 300)&(X_max >3300)&(X_max < 4070)){
break;
}
}
}
ClrLCD();
for(t= 0xffff;t!=0;t--){_nop();_nop();}
Writeline(13,112,xiaozhun1);
Writeline(7,130,xiaozhun2);
Writeline(30,100,"●");//效准一个点的位置
while(Z_var < 3500);//等到按键放开
for(;;){
if(Z_var < 3500){
Y_base = Y_max - Y_min;
Y_base_float = 198.0 / Y_base;
X_base = X_max - X_min;
X_base_float = 36.0 / X_base;
Y_address = (temp_var_y - Y_min)*Y_base_float - 140;
X_address = (temp_var_x - X_min)*X_base_float - 30;
state_menu = 1;
break;
}
}
的确是三点的办法去效验。。上面是我效验的具体程序段落。。
不过里面还是有问题。因为AD到的值变化很大,所以不是很准确,可能跟我的布局有一定的关系。希望对其他的朋友有个参考的目的。。 |
|