با سلام.من یک پروژه با AVR نوشتم که توش مقادیر رو از keypad میگیره و رو ال سی دی گرافیکی نمایش میده اما وقتی keypad رو وصل میکنم همه کلیدها به درستی کار میکنند به غیر از ستون اول. keypad 3*4 هست.ممنون میشم اگه کمکم کنید.


char keypad(){
PORTC.0=0;
if(PINC.4==0)
{
delay_ms(30);
if(PINC.4==0)
{
k=1;
ragham++;
while(PINC.4==0);
}
}
if(PINC.5==0)
{
delay_ms(30);
if(PINC.5==0)
{
k=2;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{
delay_ms(30);
if(PINC.6==0)
{
k=3;
ragham++;
while(PINC.6==0);
}
}
PORTC.0=1;
PORTC.1=0;
if(PINC.4==0)
{
delay_ms(30);
if(PINC.4==0)
{
k=4;
ragham++;
while(PINC.4==0);
}
}
if(PINC.5==0)
{
delay_ms(30);
if(PINC.5==0)
{
k=5;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{
delay_ms(30);
if(PINC.6==0)
{
k=6;
ragham++;
while(PINC.6==0);
}
}
PORTC.1=1;
PORTC.2=0;
if(PINC.4==0)
{
delay_ms(30);
if(PINC.4==0)
{
k=7;
ragham++;
while(PINC.4==0);
}
}
if(PINC.5==0)
{
delay_ms(30);
if(PINC.5==0)
{
k=8;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{
delay_ms(30);
if(PINC.6==0)
{
k=9;
ragham++;
while(PINC.6==0);
}
}
PORTC=0xff;
PORTC.3=0;
if(PINC.4==0)
{
delay_ms(30);
if(PINC.4==0)
{
//glcd_clear();
//PORTB.3=1;
k=11;
//return k=reset;
while(PINC.4==0);
}
}
if(PINC.5==0)
{
delay_ms(30);
if(PINC.5==0)
{
k=0;
ragham++;
while(PINC.5==0);
}
}
if(PINC.6==0)
{
delay_ms(30);
if(PINC.6==0)
{
// symbol=
k=12;
while(PINC.6==0);
}
}
PORTC.3=1;
return k;
}
◙◙◙◙◙ میخوام به دوستان یه کتاب معرفی کنم! وقت کردید، بخونید - اسمش هست قرآن، سال نشر 10، نویسنده: خدا . ◙◙◙◙◙ |
دیدگاه