من همیشه با کیپد مشکل دارم
الان یه کی پد 4*4 دارم موقع خوندن کلید بعضی وقت ها قاطی میخونه
من ورودی ها رو پول پ داخلی کردم
الان یه کی پد 4*4 دارم موقع خوندن کلید بعضی وقت ها قاطی میخونه
من ورودی ها رو پول پ داخلی کردم
char ReadKey(void){
int i;
uint16_t value;
char key;
for(i=0;i<4;i++){
GPIO_SetBits(GPIOD,GPIO_Pin_0);
GPIO_SetBits(GPIOA,GPIO_Pin_10);
GPIO_SetBits(GPIOA,GPIO_Pin_11);
GPIO_SetBits(GPIOA,GPIO_Pin_12);
if(i==0)
GPIO_ResetBits(GPIOA,GPIO_Pin_10);
if(i==1)
GPIO_ResetBits(GPIOA,GPIO_Pin_11);
if(i==2)
GPIO_ResetBits(GPIOA,GPIO_Pin_12);
if(i==3)
GPIO_ResetBits(GPIOD,GPIO_Pin_0);
//Delay(0XFF);
key=0;
value=GPIOD->IDR;
if((value&GPIO_Pin_1)==0)
key=i*4+1;
if((value&GPIO_Pin_2)==0)
key=i*4+2;
if((value&GPIO_Pin_3)==0)
key=i*4+3;
if((value&GPIO_Pin_4)==0)
key=i*4+4;
if(key!=0){
while(value==GPIOD->IDR) Delay(5);
break;
}
}
return key;
}

:job: :job:

:job: :job:
دیدگاه