打印
[AVR单片机]

请教大家关于ADS7843的时序

[复制链接]
1891|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lhwaizhu|  楼主 | 2012-8-10 09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我软件模拟的SPI对7843进行操作,12位的AD转换,我测试发现读回的AD转换值x坐标最大300多,y坐标最大2000多,而且位置不准,是不是我模拟时序的问题啊?下面是程序,请教大家了,谢谢。
//触摸控制接口
#define  DCLK_H     P3OUT|=(1<<0)
#define  DCLK_L     P3OUT&=~(1<<0)
#define  CS_H       P3OUT|=(1<<1)
#define  CS_L       P3OUT&=~(1<<1)
#define  DIN_L      P3OUT|=(1<<2)
#define  DIN_H      P3OUT&=~(1<<2)
#define  BUSY_OK       P3IN&0x08    //为0表示不繁忙可读数据
#define  DOUT       P3IN&0x10     //触摸屏的数据输出

#define  Penirq     P3IN&0x20    //触碰触摸屏时,ADS7843Penirq引脚由未触摸时的高电平变为低电平

struct  struct1  coordinate;  //定义一个结构变量,用于存放触摸点采样结果
unsigned int lx,ly;    //根据采集到的参数转换为TFT上的实际坐标值


void Init_2046()
{
        CS_H;
        DCLK_L;
        DIN_L;      
}


//写8位命令到触摸控制IC,模拟SPI
void  Write_2046(unsigned char temp)
{
        unsigned char i=0;
        for(i=0;i<8;i++)
        {
                if(temp&0x80)
                      DIN_H;
                else
                      DIN_L;
                DCLK_H;
                delay_us(4);
                DCLK_L;
                delay_us(4);
                temp<<=1;
        }
}
//从触摸IC读回12位数据
unsigned int Read_2046()
{
        unsigned char i=0;
        unsigned int temp=0;
        P3DIR&=~(1<<4);  //数据口设为输入
        for(i=0;i<12;i++)
        {
                DCLK_H;
                delay_us(4);
               
                if(DOUT)
                      temp++;
                temp<<=1;
               
                DCLK_L;
                delay_us(4);
        }
        P3DIR|=(1<<4);
        return temp;
}
//读取x y坐标 返回读取到的触摸点的电压值
struct struct1 AD_2046()
{
        struct struct1 pix;
        CS_L;
        Write_2046(0x90);   //送控制字
        DCLK_H;
        delay_us(4);
        DCLK_L;
        delay_us(4);
        pix.y=Read_2046();
        Write_2046(0xd0);   //读x坐标
        DCLK_H;
        delay_us(4);
        DCLK_L;
        delay_us(4);
        pix.x=Read_2046();
        CS_H;  
        return pix;  
}

相关帖子

沙发
lhwaizhu|  楼主 | 2012-8-11 11:12 | 只看该作者
请教一下了

使用特权

评论回复
板凳
playlinus| | 2012-8-11 12:02 | 只看该作者
有可能是硬件问题

使用特权

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

本版积分规则

24

主题

79

帖子

2

粉丝