[AVR单片机] 请教大家关于ADS7843的时序

[复制链接]
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部

24

主题

79

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部