شكرا لمساعدتك استاذ حسن هادى محمود
بس لو سمحت تكتبلى الكود النهائى كامل حتى استطيع فهمة
وبالنسبة للشرح اللى باللغة الانجليزية
انا ضعيف جدا فى الانجليزى ياريت لو حضرتك تشرحه بالعربى
وشكرا لك مره اخرى
|
اخي كريم
راح اشرح الي أفتهمته من help موجود بمايكروسي
كود
كود:
unsigned short Ps2_Key_Read(unsigned short *value, unsigned short *special, unsigned short *pressed);
هذه داله من نوع متغير اي ترجع قيمه اذا تم ضغط على سويج فانها قيمتها=1 واذا لم يتم ضغط على اي سويج ترجع قيمه 0
في داخل هذه داله ثلاث متغيرات يتم تعريفها في بدايه برنامج
يتم خزن قيمه كود طبعا بااسكي كود في متغير اسمه value
هنا عندك حالتين
مفاتيح خاصه واخرى عاديه
اذا ضغطت على مفاتيح عاديه يكون متغير pressed=1 واذا رفعت ايدك راح يكون pressed=0
اذا ضغطت على مفاتيح خاصه يكون متغير special=1 واذا رفعت ايدك راح يكون special=0
انت برمجه بعد تعريف تجي الى هذه خطوه
كود:
if (Ps2_Key_Read(&keydata, &special, &down)==1)
او
كود:
if (Ps2_Key_Read(&keydata, &special, &down))
كلاهما صحيح
هنا اخبرته هل تم ضغط على مفتاح اذا كان=1 نفذ كذا
وهذا كود
كود:
if (down && (keydata == 16))
يعني اذا كان down==1 وكان keydata == 16 اي ضغطت على Backspace نفذ كذا
طبعا down تعني قيمه pressed
keydata تمثل value
اما مفاتيح خاصه
طبعا تلكاها في help لمايكروسي
Key Value returned
F1 1
F2 2
F3 3
F4 4
F5 5
F6 6
F7 7
F8 8
F9 9
F10 10
F11 11
F12 12
Enter 13
Page Up 14
Page Down 15
Backspace 16
Insert 17
Delete 18
Windows 19
Ctrl 20
Shift 21
Alt 22
Print Screen 23
Pause 24
Caps Lock 25
End 26
Home 27
Scroll Lock 28
Num Lock 29
Left Arrow 30
Right Arrow 31
Up Arrow 32
Down Arrow 33
Escape 34
Tab 35
اما كود نهائي امسح كود موجود في while(1 واضيف كود الي كتبه بردي سابق
ولكن سؤالي كيف تتم عمليه محاكاه