📄 ads7843.h
字号:
//ADS7843触摸屏驱动
#define TOUCH_DCLK 0
#define TOUCH_CS 3
#define TOUCH_DIN 2
#define TOUCH_BUSY 6 //
#define TOUCH_DOUT 1
#define TOUCH_DDR DDRA
#define TOUCH_PORT PORTA
#define TOUCH_PIN PINA
unsigned long Xaddress,Yaddress;
unsigned char Xstring[8];
unsigned char Ystring[8];
unsigned int touch_irq_flag;
void TouchInit(void)
{
TOUCH_DDR|=(1<<TOUCH_DCLK)|(1<<TOUCH_CS)|(1<<TOUCH_DIN);
TOUCH_DDR&=(~((1<<TOUCH_DOUT)|(1<<TOUCH_BUSY)));
TOUCH_PORT|=(1<<TOUCH_DCLK)|(1<<TOUCH_CS)|(1<<TOUCH_DIN);
}
unsigned long TouchReadAddress(unsigned char command)
{
unsigned char i,address=0;
unsigned char temp=0x80;
TOUCH_PORT&=(~(1<<TOUCH_CS));
TOUCH_PORT&=(~(1<<TOUCH_DCLK));
for (i=0;i<8;i++)
{
TOUCH_PORT&=(~(1<<TOUCH_DCLK));
delay_us(1);
if ((command&temp)) TOUCH_PORT|=(1<<TOUCH_DIN); //SDIO=1;
else TOUCH_PORT&=(~(1<<TOUCH_DIN)); //SDIO=0;
delay_us(1);
TOUCH_PORT|=(1<<TOUCH_DCLK); //SCLK=1;
delay_us(1);
temp>>=1;
}
TOUCH_PORT&=(~(1<<TOUCH_DCLK));
delay_us(10);
TOUCH_PORT&=(~(1<<TOUCH_DIN));
delay_us(1);
TOUCH_PORT|=(1<<TOUCH_DCLK); //SCLK=1;
TOUCH_PORT&=(~(1<<TOUCH_DCLK));
delay_us(1);
for (i=0;i<7;i++)
{
TOUCH_PORT|=(1<<TOUCH_DCLK); //SCLK=1;
delay_us(1);
if (TOUCH_PIN&(1<<TOUCH_DOUT)) address+=1;
address<<=1;
delay_us(1);
TOUCH_PORT&=(~(1<<TOUCH_DCLK));
delay_us(1);
}
TOUCH_PORT|=(1<<TOUCH_DCLK); //SCLK=1;
delay_us(1);
if (TOUCH_PIN&(1<<TOUCH_DOUT)) address+=1;
delay_us(1);
TOUCH_PORT&=(~(1<<TOUCH_DCLK));
TOUCH_PORT|=(1<<TOUCH_CS);
return(address);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -