অনেকগুলি ইভেন্ট পেয়ে বোতামগুলি চাপ দিন


12

আমি একটি এমপি 3 প্লেয়ার লিখছি যা একটি এলসিডি ডিসপ্লেতে তথ্য লিখতে থাকে, আমি এটি কীবোর্ডটি ব্যবহার করে ধাক্কা বোতাম ব্যবহার করে রূপান্তর করতে চাই তবে আমি ক্রমাগত অনেকগুলি কী প্রেস করে চলেছি। আমি টান টান এবং পড়ে / উঠন্ত প্রান্ত চেষ্টা করেছি কিন্তু আমি এখনও একই ফলাফল পাচ্ছি। যদি কেউ পরিচিত সমস্যা হয় বা আমি কি কিছু ভুল করছি? ওহ, আমি ওয়্যারিংপিআই ব্যবহার করে এটি সম্পূর্ণ সিতেও করছি।


1
কেবলমাত্র সফ্টওয়্যার সমাধানের পাত্রটিতে যুক্ত করতে, আমাদের বন্ধুটিকে মাইক্রো কন্ট্রোলারগুলিতে দেখুন। আরডুইনো.সি.সি
en /

আমি কিছুক্ষণ আগে লিখেছিলাম এমন কিছু থেকে একটি স্নিপেট এখানে। if(digitalRead(data) && millis()-startTime > 10){এবং স্টার্টটাইম সেট করুন কখনই এটি লুপের জন্য প্রবেশ করে।
কেমি_এ_ব্লক

ভাবছি; আমি ঠিক কি স্টার্টটাইম সেট করতে হবে?
linuxgnuru

কিছু বাছাই সময় কাউন্টার। আরডিনোতে ফাংশন মিলিস রয়েছে যা শুরু থেকেই সময় দেয়।
কেমি_এই ব্লক

আহ ঠিক আছে, তাই ওয়্যারিংপিআই ওয়্যারিংপিআই
রেফারেন্স

উত্তর:


12

যান্ত্রিক বোতাম এবং স্যুইচগুলি সুইচ বাউনে ভুগতে পারে যেখানে তারা বেশ কয়েকটি মিলিসেকেন্ডের জন্য খোলা এবং বন্ধের মধ্যে দ্রুত টগল করে।

আপনি সফ্টওয়্যার বা হার্ডওয়্যার বাটন / স্যুইচটি ডিবিউ করার চেষ্টা করতে পারেন।

সম্ভবত সফ্টওয়্যার সবচেয়ে সহজ।

যদি স্তরটি পরিবর্তন হয় (অন টু অফ, বা অফ অফ অন) এক্স মিলিসেকেন্ডে অপেক্ষা করুন এবং আবার জিপিও পড়ুন। এটি এখনও যদি নতুন অবস্থায় থাকে তবে ধরে নিন এটি একটি আসল রূপান্তর। X এর মান 20 এর মতো কিছু হতে পারে।

হার্ডওয়্যার সমাধানের জন্য এই ধরণের পোস্টের সন্ধান করুন


8

জ্যাক গ্যানসেলের উদ্বোধনী গাইডটি পড়তে সময় নিন । প্রথম পৃষ্ঠাটি সমস্যাটি দুর্দান্তভাবে বর্ণনা করেছে এবং দ্বিতীয়টি কীভাবে এটির সাথে হার্ডওয়্যার বা সফ্টওয়্যার ব্যবহার করা যায়। একটি 'নিখুঁত' ডিবাউন পদ্ধতি নেই তবে প্রচুর খারাপ রয়েছে!

সুইচগুলির সাথে সফ্টওয়্যারকে ইন্টারফেস করা যদি আপনি বারবার আসেন তবে এটি বুঝতে সময় নেওয়া উচিত, এবং জ্যাকের নিবন্ধটি সর্বাধিক সংক্ষিপ্তভাবে আমি এটি করতে দেখেছি।


2

সিস্টেম টিকার রয়েছে এমন অ্যাপ্লিকেশনগুলিতে আমি সাধারণত শিফট রেজিস্টার প্রয়োগ করি।

unsigned char button_checker;

// inside the system ticker

button_checker <<= 1; 
button_checker += INPUT;

if (button_checker == 0xFF) 
{ 
    // button was pressed 
}

অবশ্যই, আপনি কেবল একটি উঠতি প্রান্তে বোতাম টিপুন ইভেন্টটি করা উচিত।


1
এটি একটি আকর্ষণীয় পদ্ধতি। একটানা বিভিন্ন সংখ্যক পাঠের প্রয়োজন পড়ার জন্য সহজেই কাস্টমাইজড (বোতাম_চেকারের সর্বাধিক উল্লেখযোগ্য বিটগুলি মুখোশ দিয়ে)।
Joan
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.