打印

触摸屏LCD

[复制链接]
502|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一片混沌|  楼主 | 2019-11-28 10:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在案例LCD触摸屏控制LED上

Coordinate *Read_2046_2(void)
{
    static Coordinate  screen2;
    int TP_X[1],TP_Y[1];
    uint8_t count=0;
    int buffer[2][10]={{0},{0}};  
    int min_x,max_x;
    int min_y,max_y;
    int        i=0;

#if 0 采样次数5
    do                                                                              
    {               
        Touch_GetAdXY(TP_X,TP_Y);  
        buffer[0][count]=TP_X[0];  
        buffer[1][count]=TP_Y[0];
        count++;  
    }        
    while(!INT_IN_2046&& count<5);

        
    if(INT_IN_2046)                                                
    {
                        
        touch_flag = 0;                                         
    }
               
               
    if(count ==5)                                                         
    {
        max_x=min_x=buffer[0][0];
        max_y=min_y=buffer[1][0];      
        for(i=1; i<5; i++)
        {
            if(buffer[0]<min_x)
            {
                min_x=buffer[0];
            }
            else
            if(buffer[0]>max_x)
            {
                max_x = buffer[0];
            }
        }

        for(i=1; i<5; i++)
        {
            if(buffer[1]<min_y)
            {
                min_y=buffer[1];
            }
            else
            if(buffer[1]>max_y)
            {
                max_y = buffer[1];
            }
        }
                        
        screen2.x=(buffer[0][0]+buffer[0][1]+buffer[0][2]+buffer[0][3]+buffer[0][4]-min_x-max_x)/3;
        screen2.y=(buffer[1][0]+buffer[1][1]+buffer[1][2]+buffer[1][3]+buffer[1][4]-min_y-max_y)/3;

        return &screen2;
    }
#endif
        

#if 1
    do                                                                              
    {                采样次数10
        Touch_GetAdXY(TP_X,TP_Y);  
        buffer[0][count]=TP_X[0];  
        buffer[1][count]=TP_Y[0];
        count++;  
    }        
    while(!INT_IN_2046&& count<10);

        
    if(INT_IN_2046)                                                
    {
                                
                                //LED1_TOGGLE;
                                //Lcd_show_bmp(38, 184,"/led/ui_rb_button.bmp");        
                        
                                LED1_OFF;
                                LED2_OFF;
                                LED3_OFF;
        touch_flag = 0;                                         
    }
               
               
    if(count ==10)                                                         
    {
        max_x=min_x=buffer[0][0];
        max_y=min_y=buffer[1][0];      
        for(i=1; i<10; i++)
        {
            if(buffer[0]<min_x)
            {
                min_x=buffer[0];
            }
            else
            if(buffer[0]>max_x)
            {
                max_x = buffer[0];
            }
        }

        for(i=1; i<10; i++)
        {
            if(buffer[1]<min_y)
            {
                min_y=buffer[1];
            }
            else
            if(buffer[1]>max_y)
            {
                max_y = buffer[1];
            }
        }
                                
        screen2.x=(buffer[0][0]+buffer[0][1]+buffer[0][2]+buffer[0][3]+buffer[0][4]+buffer[0][5]+buffer[0][6]+buffer[0][7]+buffer[0][8]+buffer[0][9]-min_x-max_x)>>3;
        screen2.y=(buffer[1][0]+buffer[1][1]+buffer[1][2]+buffer[1][3]+buffer[1][4]+buffer[1][5]+buffer[1][6]+buffer[1][7]+buffer[1][8]+buffer[1][9]-min_y-max_y)>>3;

        return &screen2;
    }   
#endif               
    return 0;   
}

我想知道采样次数5跟10是什么和有什么区别。还有案例上还有个函数    Coordinate *Read_2046(void)与Coordinate *Read_2046_2(void) 有什么区别??

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

391

主题

391

帖子

0

粉丝