আমি ভিএইচডিএলে একটি কীপ্যাড ডিজাইন করছি। যখন কেবল একটি একক কী চাপানো হয় তখন সবকিছু ঠিকঠাক কাজ করে। আমি একটি স্টেট মেশিনে একটি কী প্রেসের জন্য প্রতিটি কলাম স্ক্যান করছি এবং যখন কোনও কী চাপানো হয় না, যা pin4pin6pin7pin2 = "0000"
পরবর্তী কলামটি স্ক্যান করার জন্য আমি পরের অবস্থানে স্যুইচ করি। সুতরাং আমি কলাম সেট pin3pin1pin5
ক্রমানুসারে করতে "001"
, "010"
এবং "100"
।
যদিও স্ক্যান pin3pin1pin5
যেমন "001"
যদি pin4pin6pin7pin2
হয় "0100"
তারপর শুধু "9" টেপা হলে। আমি ভিএইচডিএলে pin4pin6pin7pin2
ইনপুট এবং pin3pin1pin5
আউটপুট পোর্ট হিসাবে ঘোষণা করি । আমি যখন একই সময়ে 6 ও 9 চাপুন pin6
এবং pin7
হয় high
। প্রথম চাপা কীটি পড়া হয়, দ্বিতীয়টি উপেক্ষা করা হয়। আমি একই সাথে 3 এবং 7 টি চাপলে, প্রথমটি জয়ের আগে কয়েকটি এমএস দিয়ে টিপিত হয় এবং প্রথম কীটি পড়ার পরে, দ্বিতীয় কীটি উপেক্ষা করা হয়, pin2
এবং pin4
হয় high
।
এখানে জটিল অংশ। আমি যখন একই সময়ে 4 এবং 6 চাপুন, আমি আশা pin7
করা high
কিন্তু এটা হয়ে low
এবং pin4pin6pin7pin2 = "0000"
কীভাবে এবং কেন যা আমি বুঝতে পারছি না। কারণ "0000"
হিসাবে একটি কোনো কি টেপা সনাক্ত করা হয়, রাষ্ট্র মেশিন থেকে রাষ্ট্র রাষ্ট্র থেকে জাম্প। 4 এবং 6 ধরে রাখার সময় যদি কেউ একাধিকবার 4 চাপ দেয় এবং ছেড়ে যায় তবে এটি 6 টি বেশ কয়েকবার চাপা হিসাবে ধরা পড়ে, এটি একটি বড় বাগ । আপনি যদি আমাকে এই ডিবাগ করতে সহায়তা করতে পারেন তবে আমি খুশি হব!
"1" এবং "2" এর সাথে একই জিনিস ঘটে, কেবল একই সারির কীগুলির জন্য "7" এবং "8" এর সাথে। যেহেতু এটি একটি চলমান প্রকল্প, আমি আমার ভিএইচডিএল কোডটি অনলাইনে রাখতে পারি না :( আপনি যদি এগুলি কাটিয়ে উঠতে আমাকে টিপস দিতে পারেন তবে আমি খুশি হব!
নীচে, আমি বোর্ডে আমার কোড আপলোড করছি না, কোনও কোড চলছে না। Pin5
স্থলভাগে সংযোগ স্থাপন করে, 1,2,4,5,7,8, *, 0-তে একটি একক প্রেস Pin3
এলইডি চালু করে না তবে যদি আমি 6 এবং তারপরে 4 টি একই সাথে Pin3
LED টি চালু থাকে এবং Pin7
LED এখনও চালু থাকে, তবে যখন আমার কোডটি চলছে তখন এটি হয় না। হয়তো আমি কিছু ভুল সংযুক্ত করেছি এবং ভাগ্যক্রমে Pin7
চালু আছে, আমি জানি না ...
নীচে কীপ্যাড বোর্ডের স্কিমেটিক্স দেওয়া হল: