ADs by Techtunes ADs
ADs by Techtunes ADs

মাইক্রোকন্ট্রোলার গুরু [পর্ব-১২] ::AVR মাইক্রোকন্ট্রোলার বেসিক (পর্ব-৩) || এই কোর্সে সক্রিয়ভাবে অংশ গ্রহণ করুন আর হয়ে যান, একজন মাইক্রোকন্ট্রোলার গুরু

মাইক্রোকন্ট্রোলার গুরু কোর্সে সবাইকে আন্তরিক শুভেচ্ছা এবং স্বাগতম জানাচ্ছি। টেকটিউনস বিশ্বের সবচেয়ে বড় বাংলা সোশ্যাল নেটওয়ার্ক। এরকম একটা বড় প্লাটফর্মে “মাইক্রোকন্ট্রোলার গুরু” কোর্সটি টেকটিউনস কতৃপক্ষের প্রত্যক্ষ সহযোগিতায় শুরু করতে পেরে ভালো লাগছে।

ADs by Techtunes ADs

AVR মাইক্রোকন্ট্রোলার বেসিকের আজকের পর্বে থাকছেAVR মাইক্রোকন্ট্রোলারের পিন অপারেশন।

AVR মাইক্রোকন্ট্রোলারের পিন অপারেশন

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

একটা নির্দিষ্ট পিনকে লজিক হাই করার পদ্ধতি:

আমরা ইতোমধ্যেই জেনেছি যে B পোর্টের কোন পিনটি ইনপুট হবে আর কোন পিনটি আউটপুট হবে নির্ধারণ করার জন্য DDRB রেজিস্টার ব্যবহার করা হয়, অন্যদিকে PORTB রেজিস্টারটি ব্যবহার করা হয় যে পিনগুলো আউটপুট হিসেবে নির্ধারণ করা হয়েছে সেখানে 0 বা 1 পাঠানোর জন্য।

ধরে নেয়া যাক কোন মূহর্তে PORTB রেজিস্টারের ৮ টি বিট 01100101, এ অবস্থায় PB3 পিনে লজিক লো রয়েছে।

এ অবস্থায় PB3 পিনকে লজিক হাই করতে হবে কিন্তু অন্য কোন বিট পরিবর্তন করা যাবে না।

একাজটি করার জন্য সবচেয়ে সহজ উপায় হচ্ছে PORTB রেজিস্টারের ৮ টি বিট এর সাথে 00001000 এর বিটওয়াইজ অর অপারেশন করা। এজন্য | অপারেটর ব্যবহার করা হয়। (|) কে বলা হয় বিটওয়াইজ অর অপারেটর।

01100101 |   00001000 = 01101101

আমরা দেখতে পাচ্ছি PB3 বিটটি সেট হয়েছে।

ADs by Techtunes ADs

এখন অন্য একটা অপারেটরের সাথে পরিচিত হওয়া যাক। অপরেটরটি হচ্ছে <<।

<< কে বলা হয় বিটওয়াইজ লেফট শিফট অপারেটর।

ডেসিমাল 1 এর বাইনারি 00000001 এখন (1<<3)=8 বাইনারীতে 00001000। অর্থাৎ তিন বিট শিফট হয়েছে।

এখন লেখা যেতে পারে   01100101 | (1<<3)= 01101101

PORTB=PORTB | (1<<3); স্টেটমেন্টটি এক্সিকিউট হলে PORTB এর PB3 পিন লজিক লো থেকে লজিক হাই হবে।

আরো সহজে লেখা যেতে পারে PORTB |= (1<<3);

অনুশীলন কোড:

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
	DDRB=0b11111111;
    while(1)
    {
        PORTB |= (1<<3);
	_delay_ms(500);
	PORTB = 0b00000000;
	_delay_ms(500);

    }
}

কোর্সে সক্রিয় অংশগ্রহণকারীদের জন্য কিছু করণীয়

প্রতিটা পর্বে কোর্সে সক্রিয় অংশগ্রহণকারীদের জন্য কিছু প্রশ্ন, প্রজেক্ট বা বিশেষ কিছু করণীয় থাকবে। এগুলো সম্পন্ন করে কোর্সে আপনার সক্রিয়তা নিশ্চিৎ করুন। এই কোর্সের সাথে সম্পৃক্ত বিচারক মন্ডলী এগুলো পর্যবেক্ষণ করবেন এবং প্রয়োজনীয় নির্দেশনা প্রদান করবেন।

মাইক্রোকন্ট্রোলার গুরু [পর্ব-১২] ::AVR মাইক্রোকন্ট্রোলার বেসিক (পর্ব-৩) এর জন্য কিছু সহজ প্রশ্ন থাকছে। আপনারা টিউমেন্ট করে প্রশ্ন গুলোর সঠিক উত্তর প্রদানের চেষ্টা করুন।

  • প্রশ্ন ১: 01100001 | (1<<3)=?
  • প্রশ্ন ২: << কে কি অপারেটর বলা হয় ?
  • প্রশ্ন ৩: PORTB=PORTB | (1<<4); কে সংক্ষিপ্ত আকারে কিভাবে লেখা যায়?

কোর্সের কোন পার্ট সম্পর্কে বা প্রোগ্রাম সম্পর্কে কোন বিষয় আমাকে জানানোর জন্য টিউমেন্ট করতে পারেন এর পাশাপাশি আমাকে ফেসবুকে ম্যাসেজ দিতে পারেন।

মাইক্রোকন্ট্রোলারের উপর ধারাবাহিক চেইন কোর্স "মাইক্রোকন্ট্রোলার গুরু" কোর্সে সক্রিয়ভাবে অংশ গ্রহণ করুন আর হয়ে যান, একজন মাইক্রোকন্ট্রোলার গুরু। টেকটিউনস কাপনাকে প্রয়োজনীয় সহযোগিতা প্রদান করবে, শুধুমাত্র আপনার ইচ্ছা আর সক্রিয় অংশগ্রহণই আপনাকে এ বিষয়ে অভিজ্ঞ করে তুলবে, আর সবাই আপনাকে দেখে বলবে মাইক্রোকন্ট্রোলার গুরু। তাহলে মাইক্রোকন্ট্রোলার গুরু হওয়ার জন্য আপনি প্রস্তুত তো!

ADs by Techtunes ADs

আজ এ পর্যন্তই। সবাইকে ধন্যবাদ। শুভকামনা রইলো।

ADs by Techtunes ADs
Level 0

আমি অসীম কুমার পাল। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 11 বছর 3 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 147 টি টিউন ও 471 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 16 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

আমি অসীম কুমার পাল। ইলেকট্রনিক্স এবং ওয়েব ডিজাইনকে অন্তরে ধারণ করে পথ চলতেছি। স্বপ্ন দেখি এই পৃথিবীর বুকে একটা সুখের স্বর্গ রচনা করার। নিজেকে একজন অতি সাধারণ কিন্তু সুখী মানুষ ভাবতে পছন্দ করি।


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস