من همیشه با کیپد مشکل دارم
الان یه کی پد 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; }
دیدگاه