野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14141|回复: 1

触摸屏LCD

[复制链接]
发表于 2015-3-25 09:45:43 | 显示全部楼层 |阅读模式
在案例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][i]<min_x)
            {
                min_x=buffer[0][i];
            }
            else
            if(buffer[0][i]>max_x)
            {
                max_x = buffer[0][i];
            }
        }

        for(i=1; i<5; i++)
        {
            if(buffer[1][i]<min_y)
            {
                min_y=buffer[1][i];
            }
            else
            if(buffer[1][i]>max_y)
            {
                max_y = buffer[1][i];
            }
        }
                       
        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][i]<min_x)
            {
                min_x=buffer[0][i];
            }
            else
            if(buffer[0][i]>max_x)
            {
                max_x = buffer[0][i];
            }
        }

        for(i=1; i<10; i++)
        {
            if(buffer[1][i]<min_y)
            {
                min_y=buffer[1][i];
            }
            else
            if(buffer[1][i]>max_y)
            {
                max_y = buffer[1][i];
            }
        }
                               
        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) 有什么区别??
回复

使用道具 举报

发表于 2015-3-25 13:35:23 | 显示全部楼层
采样次数就是你在触摸时触摸屏采集你触摸数据的次数(手还没离开),虽然你感觉触摸时间很短,但stm32运行速度很快,所以足够在你手离开触摸屏之前采集多次数据,即多次扫描并保存数据
采用次数越多,得到数据也准确,消耗时间也越久
至于两个函数的区别,不是在函数说明有将了吗??Read_2046基本精准但速度慢些,而Read_2046_2速度快,主要就是出来数据方法不同
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-12-30 03:23 , Processed in 0.028955 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表