سلام
دوستان من با کد زیر تو محیط کدویژیون کیپد رو راش میندازم
کد:
char Get_Key_Pressed()
{
unsigned char r,c;
KEYPAD_PORT|= 0X0F;
for(c=0;c<3;c++)
{
KEYPAD_DDR&=~(0X7F);
KEYPAD_DDR|=(0X40>>c);
for(r=0;r<4;r++)
{
if(!(KEYPAD_PIN & (0X08>>r)))
{
switch (r*3+c)
{
case 0:
return Key_Stop;
break;
case 1:
return '0';
break;
case 2:
return Key_Enter;
break;
case 3:
return '9';
break;
case 4:
return '8';
break;
case 5:
return '7';
break;
case 6:
return '6';
break;
case 7:
return '5';
break;
case 8:
return '4';
break;
case 9:
return '3';
break;
case 10:
return '2';
break;
case 11:
return '1';
break;
}
}
}
}
return 0XFF;
}
به خوبی هم کار می کنه ولی تو یه پروژه که استفاده کردم
و به مدت یک هفته که میکروی مگا 8 که مدام روشن بود خوب کار کرد
ولی بعد از یک هفته انگار یکی از کلیدهای کی پد همیشه فشرده شده بود
و میکرو مدام عمل مربوط به اون کلید رو تکرار می کرد و در بعضی موارد هم که انگار
کلیدی فشار داده نشده با فشار دادن کلید عمل مربوط کلید دیگری رو انجام می داد
اومدم تمام پایه های کی پد رو پول اپ کردم بازم درست نشد
چک کردم کیپد کاملا سالمه سالمه و هیچ گونه اتصالی چیزی نداره
در ضمن میکرو با کریستال 8 مگاهرتز داخلی کار می کنه
لطفا اساتید راهنمایی کنن که مشکل چیه
اگه این طوریه ی که چه طور میشه تو صنعت به میکروکنترلر ها اعتماد کرد
و ازشون تو یه پروژه ای که قرار شاید چند سال کار کنه استفاده کرد