打印

哪位大哥搞过触摸屏驱动的,给我指点一下好吗?

[复制链接]
1729|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kinggate|  楼主 | 2007-12-26 21:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用是ADS7846触摸屏驱动芯片,程序是把读到的转换值发到串口去观察的,但不管点击屏的哪里,得到的值都是一样的.我又用从网上拷下来的程序来测试,也是不管点哪得到的值都一样。我测试过,串口发送数字是正确的.我把程序贴上来,哪位高手帮我看一下好吗?调了好几天,实在没法了.
uint  ADS7846WR(uchar CtrlData)  //7846的写和读
{  
   uchar   i;
   uint  ReadData;
    CS=1;            
    DCLK = 0;
    DIN = 0
    delay(2);   
    CS=0;                     
   for(i=0; i<8; i++)    //上升沿写控制字
   {  
          if( (CtrlData&0x80) != 0 ) DIN=1;    
        else  DIN=0;            
      delay(2);
      DCLK = 0;                
      delay(2);
      DCLK = 1;                
      CtrlData = CtrlData<<1;
   }
   DIN = 0;                        
   DCLK = 0;                    
   delay(4);
   DCLK = 1;                    
   delay(2);

   ReadData = 0;

   for(i=0; i<12; i++)   //下降沿读转换值
   {       
      DCLK = 1;                            
      delay(2);
      DCLK = 0;                    
      if( DOUT != 0 )  ReadData = ReadData | 1;
      delay(2);
      if(i<12) ReadData = ReadData<<1;    //位12不移位了
      if(i==7) delay(4);         
   }                             
   
   for(i=0;i<4;i++)     
   {  
      
      DCLK = 1;                    
      delay(2);
      DCLK = 0;                         
      delay(2); 
   }    
   CS = 1;                           
   return(ReadData);
}
void countPOS( )  
{
  xPOS=ADS7846WR(0xD0);  //转换X坐标
  yPOS=ADS7846WR(0x90);  //转换Y坐标
 }

void pressINT( ) interrupt 0    //pen中断
{
  EA=0;  
  delay(250);    //去抖
  if(screenINT==0) 
  {  
   countPOS( );        
   }   
  EA=1;    
}

然后就是在主函数里将xPOS和yPOS分为4个8位的数发送到串口上显示了.
但在哪触摸得到的数值都是一样的,奇怪.
请大家帮我看看呵,或者哪位调试过触摸屏的,给我指点一下好吗.
谢谢了!!

相关帖子

沙发
kinggate|  楼主 | 2007-12-28 10:26 | 只看该作者

各位大虾帮忙看看啊

使用特权

评论回复
板凳
cgd555| | 2008-12-11 16:14 | 只看该作者

用7846怎样实现触摸屏双击?

使用特权

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

本版积分规则

13

主题

37

帖子

0

粉丝