请问里面做触摸屏的朋友们是如何效准的。。我的触摸屏不知道如何自动效准。。如果想

2020-02-10 08:54发布

请问里面做触摸屏的朋友们是如何效准的。。我的触摸屏不知道如何自动效准。。批量生产很不方便
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
our_avr
2020-02-11 19:01
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到的值变化很大,所以不是很准确,可能跟我的布局有一定的关系。希望对其他的朋友有个参考的目的。。

一周热门 更多>