Aghaeifar
03-08-2010, 17:48
سلام
می خواستم برای تاچ روی برد ال سیدیم که توسط این ای سی کنترلر میشه تاچش رو راه اندازی کنم
مشکلم این بود همش صفر دریافت می کنم
من از lpc2148 دارم استفاده می کنم کدم رو هم در زیر می ذارم اگر کسی نکته دید توش من رو بی نصیب نذاره
دیتا شیت آی سی :
You can see links before reply
ای سی توسط باس spi با میکرو کنترلر ارتباطه داره
#define Touch_Set FIO1SET=1<<22
#define Touch_Clr FIO1CLR=1<<22
#define spi_connect PINSEL0=0x1500
#define spi_disconnect PINSEL0=0x00
#define CHANNEL_X 0x93 // PD[]=11 || DFR || Mode=12Bit || Analog input=X+
#define CHANNEL_Y 0xD3 // PD[]=11 || DFR || Mode=12Bit || Analog input=Y+
#define CHANNEL_none 0x0
extern unsigned char bufsend[3],bufrecieve[3],bufstatus[3];
void spi_init_touch()
{
S0SPCCR=0x0C; // Clock devider = 12
S0SPCR=0x820; // Master - 8bit transfer - CPOL&CPHA=0 - MSB first
}
void touch_get (unsigned short cmd)
{
unsigned short i;
bufsend[0]=cmd;
bufsend[1]=CHANNEL_none;
bufsend[2]=CHANNEL_none;
FIO0DIR&=0xFFDF;
Touch_Clr;
for (i=0;i<3;i++)
{
bufsend[i]=spi_send(bufsend[i]);
bufrecieve[i]=S0SPDR;
bufstatus[i]=S0SPSR;
}
FIO0DIR=0xFFFF;
Touch_Set;
}
void spi_wait()
{
while(!(S0SPSR&0x80));
}
unsigned short spi_send(unsigned short data)
{
spi_connect;
S0SPDR=data;
spi_wait();
data=S0SPSR;
spi_disconnect;
return data;
}
می خواستم برای تاچ روی برد ال سیدیم که توسط این ای سی کنترلر میشه تاچش رو راه اندازی کنم
مشکلم این بود همش صفر دریافت می کنم
من از lpc2148 دارم استفاده می کنم کدم رو هم در زیر می ذارم اگر کسی نکته دید توش من رو بی نصیب نذاره
دیتا شیت آی سی :
You can see links before reply
ای سی توسط باس spi با میکرو کنترلر ارتباطه داره
#define Touch_Set FIO1SET=1<<22
#define Touch_Clr FIO1CLR=1<<22
#define spi_connect PINSEL0=0x1500
#define spi_disconnect PINSEL0=0x00
#define CHANNEL_X 0x93 // PD[]=11 || DFR || Mode=12Bit || Analog input=X+
#define CHANNEL_Y 0xD3 // PD[]=11 || DFR || Mode=12Bit || Analog input=Y+
#define CHANNEL_none 0x0
extern unsigned char bufsend[3],bufrecieve[3],bufstatus[3];
void spi_init_touch()
{
S0SPCCR=0x0C; // Clock devider = 12
S0SPCR=0x820; // Master - 8bit transfer - CPOL&CPHA=0 - MSB first
}
void touch_get (unsigned short cmd)
{
unsigned short i;
bufsend[0]=cmd;
bufsend[1]=CHANNEL_none;
bufsend[2]=CHANNEL_none;
FIO0DIR&=0xFFDF;
Touch_Clr;
for (i=0;i<3;i++)
{
bufsend[i]=spi_send(bufsend[i]);
bufrecieve[i]=S0SPDR;
bufstatus[i]=S0SPSR;
}
FIO0DIR=0xFFFF;
Touch_Set;
}
void spi_wait()
{
while(!(S0SPSR&0x80));
}
unsigned short spi_send(unsigned short data)
{
spi_connect;
S0SPDR=data;
spi_wait();
data=S0SPSR;
spi_disconnect;
return data;
}