সুচিপত্র:

Arduino - পর্যায়ক্রমিক বাধা: 4 টি ধাপ
Arduino - পর্যায়ক্রমিক বাধা: 4 টি ধাপ

ভিডিও: Arduino - পর্যায়ক্রমিক বাধা: 4 টি ধাপ

ভিডিও: Arduino - পর্যায়ক্রমিক বাধা: 4 টি ধাপ
ভিডিও: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, জুলাই
Anonim
Arduino - পর্যায়ক্রমিক বাধা
Arduino - পর্যায়ক্রমিক বাধা

এই নির্দেশনাটি Arduino প্রোগ্রামে সময়ের জন্য একটি পর্যায়ক্রমিক বাধা ব্যবহার করার বিষয়ে। এটি একটি উদীয়মান Arduino প্রোগ্রামারের জন্য একটি পদক্ষেপ যা জানে যে Arduino আরও কিছু করতে পারে, কিন্তু কিভাবে এটি ঘটতে হয় তা জানে না।

যদি কোনও পারফরম্যান্স সমস্যা থাকে তবে আমি ধরে নিচ্ছি যে আপনি এক বা একাধিক বিলম্ব () ফাংশন ব্যবহার করছেন। কৌশলটি হল বিলম্ব () ফাংশন (গুলি) থেকে পরিত্রাণ পাওয়া এবং একটি বাধা প্রতিস্থাপন করা। বিলম্ব () ফাংশন বিলম্ব () সম্পূর্ণ হওয়ার জন্য অপেক্ষা করার সময় আরডুইনোকে কিছুই করতে বাধ্য করে না। বিলম্বের সমাপ্তির জন্য অপেক্ষা করার সময় একটি বাধা ব্যবহার করা আপনার প্রোগ্রামটিকে অন্যান্য কাজ করার অনুমতি দেয়। সাধারণত বিপুল পরিমাণ অব্যবহৃত মৃত সময় থাকে যা বিলম্ব () ব্যবহার করার সময় অন্যান্য জিনিসের জন্য ব্যবহার করা যেতে পারে। একটি বাধা ব্যবহার করে এই সমস্যার সমাধান করে।

ধাপ 1: ইন্টারাপ্ট হ্যান্ডলার

1. আপনার প্রোগ্রামে ইন্টারাপ্ট হ্যান্ডলার যুক্ত করুন। শুধু সেটআপের উপরে কোথাও কপি এবং পেস্ট করুন ();

const স্বাক্ষরবিহীন দীর্ঘ TIMER0_COUNT = 500; // 500 এমএসসি টাইমার ব্যবধান

// TIMER0 বাধা হ্যান্ডলার অস্থির বুল সময় = মিথ্যা; ISR (TIMER0_COMPA_vect) {স্ট্যাটিক স্বাক্ষরবিহীন দীর্ঘ গণনা = 0; যদি (++ count> TIMER0_COUNT) {count = 0; সময় = সত্য; // সময় প্রতি TIMER0_COUNT ms} সত্যে সেট করা হয়েছে // (প্রধান রুটিনে সময় পরিষ্কার করা প্রয়োজন)}

ধাপ 2: পর্যায়ক্রমিক সময় ব্যবধান সেট করুন

2. সময়ের ব্যবধান সেট করুন। এই রুটিন পিগিব্যাক নিজেই TIMER0 ইন্টারাপ্টের দিকে চলে যায়, যা প্রতি ~ 1 msec তে আগুন ধরিয়ে দেয়।

আপনার "ব্যবধান" হল প্রক্রিয়ায় TIMER0 বাধাগুলির সংখ্যা। প্রতিটি ব্যবধান ~ 1 মিএসসি, তাই আপনি আপনার ব্যবধান সক্রিয় করার আগে কতগুলি TIMER0 বাধা গণনা করার জন্য সেট করছেন। IOW, পরিবর্তনশীল TIMER0_COUNT সেট করুন তবে আপনি যত মিলিসেকেন্ড অপেক্ষা করতে চান। উদাহরণস্বরূপ, এক সেকেন্ডের অর্ধেকের জন্য 500 ব্যবহার করুন। 3 সেকেন্ডের জন্য 3000 ব্যবহার করুন।

ধাপ 3: শুরুতে বাধা দিন

3. আপনার সেটআপ () পদ্ধতিতে "TIMER0 আরম্ভ" কোড যোগ করুন। আবার, সেটআপ () এ কেবল কপি এবং পেস্ট করুন।

// *** টাইমার 0 আরম্ভ ***

cli (); // সমস্ত বাধা বন্ধ করুন TIMSK0 = 0; // নিম্ন জিটারের জন্য টাইমার 0 বন্ধ করুন OCR0A = 0xBB; // নির্বিচারে বাধা গণনা TIMSK0 | = _BV (OCIE0A); // পিগি ফিরে বাধা sei (); // টার্ন ইন্টারাপ্ট আবার চালু

ধাপ 4: আপনার কোড কোথায় যোগ করবেন

4. আপনার লুপ () পদ্ধতিতে "টাইম চেক" কোড যোগ করুন। লুপে কপি এবং পেস্ট করুন ()।

যদি (সময়) {

সময় = মিথ্যা; // এখানে কিছু করো}

"সময় = মিথ্যা;" লাইন গুরুত্বপূর্ণ। এই লাইন ছাড়া "এখানে কিছু করুন" লাইন (গুলি) চালানো হবে যখনই প্রোগ্রাম লুপ () চালাবে।

অবশ্যই, আপনি "এখানে কিছু করুন" লাইনে আপনার নিজের ক্রিয়াকলাপগুলি প্রতিস্থাপন করুন। কিছু টেক্সট প্রিন্ট করে বা LED ফ্ল্যাশ করে শুরু করুন।

তুমি করেছ!

প্রস্তাবিত: