از دوستان کسی لایبرری برای کیبورد 4*4 نداره؟
از دوستان کسی لایبرری برای کیبورد 4*4 نداره؟
سلام
نوشتن این برنامه فکر نکنم خیلی سخت باشه.
در کیبرد ماتریسی به این صورته که سطر را با صفر یا یک می خونه و بعد ستون. از روی وضعیت سطر و ستون اینکه چه چیزی فشار داده شده تشخیص داده می شود.
برای سایر میکرو ها اگه یه سرچ کنید برنامه هایی هم هست که با یه تغییر درست میشه برای 1768 و البته الگوریتم هم شرح داده شده
سلام كلآ خيلي سادست ولي بازم اينو داشتم براي همين ميزارم تا شما و بقيه دوستان استفاده كنيد .
فقط بايد cmsisهم ضميمه پروژتون كنيد
پايه هاي p2.2 تا p2.9 وصلن به كيپد
const unsigned char code_key[4][4]={{1,4,7,10},{2,5,8,0},{3,6,9,11},{12,13,14,15}};
//************************************************** *****************
//*********************** SCAN KEY PRESS FUNCTION *******************
//************************************************** *****************
unsigned int scan_key(void)
{
//P2.2 => PKBD1 to P2.9 => PKBD8 of kbd pins LPC_GPIO0->FIOMASK=0X00000000; //P0.
//pkbd1->4 to row1->4 --- pkbd5->col1 to pkbd8->col4
//GPIO_SetValue(uint8_t portNum, uint32_t bitValue) GPIO_ClearValue(uint8_t portNum, uint32_t bitValue)
//GPIO_SetDir(uint8_t portNum, uint32_t bitValue, uint8_t dir) //- 0: Input - 1: Output
//FIO_SetMask(uint8_t portNum, uint32_t bitValue, uint8_t maskValue) // - 0: not mask - 1: mask
unsigned int i,data,num_key,temp;
num_key = 0xFF;
temp = 0x7F;
temp = temp<<2;
FIO_SetMask( KBD_port , ~(1020) , mask_io );
GPIO_SetDir( KBD_port , 0x3C , in_port ); // - 0: Input - 1: Output ----- input lower 4bit
GPIO_SetDir( KBD_port , 0x3C0 , out_port ); // - 0: Input - 1: Output ----- output higher 4bit
//set_ResistorMode ( KBD_port , 0x3C , PINSEL_PINMODE_PULLUP );
for( i = 0 ; i < 4 ; i++ )
{
GPIO_SetValue( KBD_port , temp ); //PORTC=temp;
GPIO_ClearValue( KBD_port , ~(temp) );//PORTC=temp;
delay_ms(5);
data = GPIO_ReadValue(KBD_port) & 0x3C;
if(data==0x1C)
num_key = code_key[0][i];
if(data==0x2C)
num_key = code_key[1][i];
if(data==0x34)
num_key = code_key[2][i];
if(data==0x38)
num_key = code_key[3][i];
temp= ((temp>>=1) | 0x200) ;
}
FIO_SetMask( KBD_port , ~(1020) , not_mask_io);
return num_key;
}
این که مثال خود کتابه . کار هم نمیکنه
كدوم كتاب رو شما ميگيد؟
من تست كردم اين برنامرو رو دوتا پروژه داره كار ميكنه!.شايد مشكل سخت افزاري داريد؟!
شايدم پايه ها رو تغيير داديد اگه به پايه هاي ديگه وصل كنيد بايد كانفيگ پايه ها رو درست انجام بديد.اين سورس كدو من تو خيلي از پروژه ها استفاده كردم خيلي ساده و روتينه اصل منبعشم ماله كتاب مرجع ميكروكنترلرهايavr ماله مهندس پرتويي فر هست كه انتشاراتشم نص هست.
موفق و مويد باشيد
سلام دوست عزیز.این لایبری رو من برای خودم نوشتم و ازش استفاده میکنم.
این لایبری اگه کلیدی رو فشار ندادین عدد 0 و اگه فشار داده باشید 1 رو بر میگردونه.خود عدد فشار داده شده هم توی اشاره گر مورد نظط ریخته میشه.مشکلی بود در خدمتم
سلام دوستان من میخوام خروجی یه نام پد رو به یو اس بی تبدیل کنم وبه کامپیوتر وصل کنم لطفا راهنماییم کنید.خیلی عجله دارم
ویرایش توسط mzarkoob : 16-12-2013 در ساعت 15:54