سلام دوستان
من برنامه زیر رو نوشتم
//-------------------------------------
من برنامه زیر رو نوشتم
//-------------------------------------
while (1)
{
// Place your code here
key=keypad();
if(key=="70"
{
i++;
while(key=="70"
{
};
}
if(key=="70" && i==1)
{
sprintf(str,"X:%4u",i);
lcd_puts(str);
lcd_clear();
}
if(key=="70" && i==2)
{
sprintf(str,"Y:%4u",i);
lcd_puts(str);
lcd_clear();
}
lcd_gotoxy(1,10);
sprintf(buffer,"Key %d",key);
lcd_puts(buffer);
delay_ms(300);
};
}
متغیر key از نوع char و متغیر i از نوع int تعریف شده. همونطور که در برنامه مشاهده میکنید. برنامه طوری نوشته شده که اگه کلید (on که متناظر با 70 هست) رو یکبار فشار بدیم یه چیز نشون بده و اگه دوبار فشار بدیم یه چیز دیگه. وقتی من این برنامه رو بدون صفحه کلید و با صفر و یک کردن یک پین از پورت b انجام میدم، همه چی درست کار میکنه اما حالا که از کیپد استفاده میکنم کار نمیکنه. نمونه برنامه ای هم که با پین نوشتم به صورت زیره و صحیح کار میکنه. مشکل کجاست؟{
// Place your code here
key=keypad();
if(key=="70"

{
i++;
while(key=="70"

{
};
}
if(key=="70" && i==1)
{
sprintf(str,"X:%4u",i);
lcd_puts(str);
lcd_clear();
}
if(key=="70" && i==2)
{
sprintf(str,"Y:%4u",i);
lcd_puts(str);
lcd_clear();
}
lcd_gotoxy(1,10);
sprintf(buffer,"Key %d",key);
lcd_puts(buffer);
delay_ms(300);
};
}
while (1)
{
// Place your code here
if(PINB.0==1)
{
key=1;
i++;
while(PINB.0==1)
{
};
}
if(key==1 && i==1)
{
x=10542;
sprintf(str,"X:%4u",i);
lcd_puts(str);
lcd_clear();
PINB.0=0;
}
if(key==1 && i==2)
{
x=10542;
sprintf(str,"Y:%4u",i);
lcd_puts(str);
lcd_clear();
PINB.0=0;
}
};
{
// Place your code here
if(PINB.0==1)
{
key=1;
i++;
while(PINB.0==1)
{
};
}
if(key==1 && i==1)
{
x=10542;
sprintf(str,"X:%4u",i);
lcd_puts(str);
lcd_clear();
PINB.0=0;
}
if(key==1 && i==2)
{
x=10542;
sprintf(str,"Y:%4u",i);
lcd_puts(str);
lcd_clear();
PINB.0=0;
}
};
دیدگاه