پاسخ : ماژول LCD 3.2 به همراه تاچ اسکرین
والله من سر در نیاوردم کتابخونش چی گفته
این کتابخونشه : اگر می تونید بگید به کدوم پایه ها وصل کنم - از طریق مبدل انالوگ راه اندازی کرده
#ifndef Touch_INCLUDED_
#define Touch_INCLUDED_
void touch(int *x , int *y);
int ADC(char ch);
void Del(void);
void Del(void){
int i=50000;
while(i--);
}
double x,y;
int ADC(char ch){
int v;
LPC_SC->PCONP |= (1<<12);
switch(ch){
case 0 : LPC_PINCON->PINSEL1 |= 1<<14 ;
LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ;
while (!(LPC_ADC->ADDR0 & (1UL<<31)));
v = (LPC_ADC->ADDR0>>4 & 0xfff);
break;
case 1 : LPC_PINCON->PINSEL1 |= 1<<16 ;
LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ;
while (!(LPC_ADC->ADDR1 & (1UL<<31)));
v = (LPC_ADC->ADDR1>>4 & 0xfff);
break;
case 2 : LPC_PINCON->PINSEL1 |= 1<<18 ;
LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ;
while (!(LPC_ADC->ADDR2 & (1UL<<31)));
v = (LPC_ADC->ADDR2>>4 & 0xfff);
break;
case 3 : LPC_PINCON->PINSEL1 |= 1<<20 ;
LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ;
while (!(LPC_ADC->ADDR3 & (1UL<<31)));
v = (LPC_ADC->ADDR3>>4 & 0xfff);
break;
}
return v ;
}
void touch(int *x , int *y){
int a,b;
LPC_GPIO0->FIODIR |= (1<<23)|(1<<25) ;
LPC_PINCON->PINMODE1 |= (1UL<<17)|(1UL<<21);
LPC_GPIO0->FIOSET |= (1<<25) ;
LPC_GPIO0->FIOCLR |= (1<<23) ;
Del();
b= ADC(1);
//*y=b;
*y=(320*(3330-b))/2490;
LPC_PINCON->PINSEL1 &= ~(1<<16) ;
LPC_PINCON->PINMODE1 &= ~((1UL<<17)|(1UL<<21));
LPC_GPIO0->FIODIR &= ~((1<<23)|(1<<25)) ;
LPC_GPIO0->FIOSET &= ~(1<<23) ;
LPC_GPIO0->FIOCLR &= ~((1<<25)|(1<<26)) ;
LPC_GPIO0->FIODIR |= (1<<24)|(1<<26) ;
LPC_PINCON->PINMODE1 |= (1UL<<15)|(1UL<<19);
LPC_GPIO0->FIOSET |= (1<<24) ;
LPC_GPIO0->FIOCLR |= (1<<26) ;
Del();
a= ADC(2);
//*x=a;
*x= (240*(3360-a))/2720;
LPC_PINCON->PINSEL1 &= ~(1<<18) ;
LPC_PINCON->PINMODE1 &= ~((1UL<<15)|(1UL<<19));
LPC_GPIO0->FIODIR &= ~((1<<24)|(1<<26)) ;
LPC_GPIO0->FIOSET &= ~(1<<26) ;
LPC_GPIO0->FIOCLR &= ~((1<<24)|(1<<23)) ;
}
#endif
والله من سر در نیاوردم کتابخونش چی گفته
این کتابخونشه : اگر می تونید بگید به کدوم پایه ها وصل کنم - از طریق مبدل انالوگ راه اندازی کرده
#ifndef Touch_INCLUDED_
#define Touch_INCLUDED_
void touch(int *x , int *y);
int ADC(char ch);
void Del(void);
void Del(void){
int i=50000;
while(i--);
}
double x,y;
int ADC(char ch){
int v;
LPC_SC->PCONP |= (1<<12);
switch(ch){
case 0 : LPC_PINCON->PINSEL1 |= 1<<14 ;
LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ;
while (!(LPC_ADC->ADDR0 & (1UL<<31)));
v = (LPC_ADC->ADDR0>>4 & 0xfff);
break;
case 1 : LPC_PINCON->PINSEL1 |= 1<<16 ;
LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ;
while (!(LPC_ADC->ADDR1 & (1UL<<31)));
v = (LPC_ADC->ADDR1>>4 & 0xfff);
break;
case 2 : LPC_PINCON->PINSEL1 |= 1<<18 ;
LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ;
while (!(LPC_ADC->ADDR2 & (1UL<<31)));
v = (LPC_ADC->ADDR2>>4 & 0xfff);
break;
case 3 : LPC_PINCON->PINSEL1 |= 1<<20 ;
LPC_ADC->ADCR = (1<< ch) | (1<< 8) | (1<<21) | (1<<24) ;
while (!(LPC_ADC->ADDR3 & (1UL<<31)));
v = (LPC_ADC->ADDR3>>4 & 0xfff);
break;
}
return v ;
}
void touch(int *x , int *y){
int a,b;
LPC_GPIO0->FIODIR |= (1<<23)|(1<<25) ;
LPC_PINCON->PINMODE1 |= (1UL<<17)|(1UL<<21);
LPC_GPIO0->FIOSET |= (1<<25) ;
LPC_GPIO0->FIOCLR |= (1<<23) ;
Del();
b= ADC(1);
//*y=b;
*y=(320*(3330-b))/2490;
LPC_PINCON->PINSEL1 &= ~(1<<16) ;
LPC_PINCON->PINMODE1 &= ~((1UL<<17)|(1UL<<21));
LPC_GPIO0->FIODIR &= ~((1<<23)|(1<<25)) ;
LPC_GPIO0->FIOSET &= ~(1<<23) ;
LPC_GPIO0->FIOCLR &= ~((1<<25)|(1<<26)) ;
LPC_GPIO0->FIODIR |= (1<<24)|(1<<26) ;
LPC_PINCON->PINMODE1 |= (1UL<<15)|(1UL<<19);
LPC_GPIO0->FIOSET |= (1<<24) ;
LPC_GPIO0->FIOCLR |= (1<<26) ;
Del();
a= ADC(2);
//*x=a;
*x= (240*(3360-a))/2720;
LPC_PINCON->PINSEL1 &= ~(1<<18) ;
LPC_PINCON->PINMODE1 &= ~((1UL<<15)|(1UL<<19));
LPC_GPIO0->FIODIR &= ~((1<<24)|(1<<26)) ;
LPC_GPIO0->FIOSET &= ~(1<<26) ;
LPC_GPIO0->FIOCLR &= ~((1<<24)|(1<<23)) ;
}
#endif
دیدگاه