ARM Tutorial Part 2-Interrupt | এআরএম টিউটোরিয়াল(পর্ব ২: ইন্টারাপ্ট)
STM32f0 discovery board এর PA0 পিনটিকে এক্সটার্নাল ইন্টারাপট পিন হিসেবে ব্যবহার করা যায়। বোর্ডটিতে PA0 পিনের সাথে একটি পুশ বাটন সংযুক্ত করা আছে,যার নাম B1।
এই টিউটোরিয়ালে আমরা দেখব কিভাবে STM32f0 discovery board এ B2 বাটন প্রেস করে এক্সটার্নাল ইন্টারাপ্ট জেনারেট করতে হয়।
প্রয়োজনীয় হার্ডওয়্যার | পরিমান | লিংক |
STM32F0DISCOVERY, STM32F0 Discovery Kit | 1 | এখানে ক্লিক করুন |
Usb cable A to mini B | 1 | এখানে ক্লিক করুন |
প্রয়োজনীয় সফটওয়্যার | লিংক |
STM32cube MX | http://bit.ly/2MS8tXd |
Keil µvision5 | http://bit.ly/2MPV8yX |
STlink driver | http://bit.ly/2wPry2j |
কোডিংঃ
উপরে প্রদত্ত লিংকগুলো থেকে সফটওয়্যারগুলো ডাউনলোড করে নিতে হবে। সফটওয়্যার ডাউনলোড করতে আপনাকে তাদের ওয়েবসাইটে রেজিস্ট্রেশন করতে হবে। কোডিংঃ প্রথমে STMcube MX সফটওয়্যারটি ওপেন করুন।
MCU selector এ ক্লিক করুন।
MCU list থেকে আমাদের ব্যবহৃত বোর্ডের নামটি ক্লিক করুন।
নিচের মেসেজটি দেখালে Yes ক্লিক করুন।
নিচের ছবিটির মতো আমাদের ব্যবহৃত বোর্ডের পিনআউট দেখাবে। বাই ডিফল্ট PC8 ও PC9 আউটপুট পিন এবং PA0 পিনের উপর ক্লিক করে GPIO_EXT10 সিলেক্ট করুন।
Configuration এ গিয়ে NVIC তে ক্লিক করুন।
EXTI line 0 and 1 interrupts true 0 তে টিক দিয়ে OK ক্লিক করুন।
Project settings এ ঢুকে প্রজেক্টের নাম দিন। যে ফোল্ডারে সেভ করবেন সেটি সিলেক্ট করুন। সফটওয়্যার লিস্ট থেকে MDK-5 সিলেক্ট করুন।
Generate code ক্লিক করুন। Keil µvision5 Open হবে। ফোল্ডারের main.c নামক ফাইলটিই আমাদের কোড।
Functions এ ক্লিক করে STM30f0xx_hal_gpio.c ক্লিক করুন। সি ফাইলটি ওপেন হবে।
STM30f0xx_hal_gpio.c এর লিস্ট থেকে HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) ক্লিক করুন। সি ফাইলের যেখানে এই ফাংশনটি আছে সেখানেই আপনার কার্সার চলে যাবে। এবার Weak শব্দটি বাদ দিয়ে বাকি পুরো ফাংশনটি কপি করুন।
এবার main.c তে ফাংশনটি পেস্ট করুন এবং নিচের লাইনগুলো লিখুন।
বাটনের ডিবাউন্সিং প্রবলেম দূর করার জন্য উপরের কোডের ফর লুপটি ব্যবহার করে ৫ সেকেন্ডের একটি ডিলে যোগ করা হয়েছে।
Main.c এর while লুপে নিচের কোডটি লিখুন।
কোড রিবিল্ড করুন।
রিবিল্ড করা ঠিকমতো হলে কোনো এরর মেসেজ দেখাবে না।
STM32F0DISCOVERY board কে কম্পিউটারের সাথে ইউএসবি এ টু মিনি কি কেবল দ্বারা যুক্ত করুন।
কোড লোড করুন।
কোড লোড করার পর বোর্ডটিকে রিবুট করতে হবে। বোর্ডে B2 চিহ্নিত বাটনকে একবার প্রেস করলে বোর্ড রিবুট করবে।
এরপর আমাদের কোড অনুযায়ী বোর্ডের সবুজ এলইডি এক সেকেন্ড পরপর জ্বলানেভা করবে। এবং প্রতিবার B1 বাটন প্রেস করলে নীল এলইডির অবস্থার পরিবর্তন হবে।