সুচিপত্র:

একটি MSP430: 6 ধাপে সসীম রাজ্য মেশিন
একটি MSP430: 6 ধাপে সসীম রাজ্য মেশিন

ভিডিও: একটি MSP430: 6 ধাপে সসীম রাজ্য মেশিন

ভিডিও: একটি MSP430: 6 ধাপে সসীম রাজ্য মেশিন
ভিডিও: Algorithm, Flowchart and Program Coding in C | Programming Language-5 | HSC ICT 2024, জুলাই
Anonim
একটি MSP430 এ সসীম রাজ্য মেশিন
একটি MSP430 এ সসীম রাজ্য মেশিন
একটি MSP430 এ সসীম রাজ্য মেশিন
একটি MSP430 এ সসীম রাজ্য মেশিন

আমি কিভাবে টেক্সাস ইন্সট্রুমেন্টস কোড কম্পোজার স্টুডিওতে সরাসরি YAKINDU স্টেটচার্ট টুলস ব্যবহার করে ফিনাইট স্টেট মেশিন (FSM) দিয়ে MSP430G2 লঞ্চপ্যাড প্রোগ্রাম করতে হয় তা দেখাতে যাচ্ছি।

এই টিউটোরিয়ালে ছয়টি ধাপ রয়েছে:

  1. কোড কম্পোজার স্টুডিওতে প্লাগইন হিসেবে YAKINDU স্টেটচার্ট টুলস ইনস্টল করা
  2. কোড কম্পোজার স্টুডিওতে স্টেট মেশিন দিয়ে শুরু করা
  3. ব্লিঙ্কি স্টেট মেশিন তৈরি করুন
  4. স্টেট মেশিন সি কোড তৈরি করুন
  5. আপনার কোড থেকে স্টেট মেশিন কল করা হচ্ছে
  6. প্রকল্পটি চালান!

এই প্রকল্পটি যে কোন MPS430 বা MSP432 এর জন্য একটি ব্লুপ্রিন্ট হিসাবে ব্যবহার করা যেতে পারে!

সরবরাহ

সফটওয়্যার:

  • YAKINDU স্টেটচার্ট টুলস
  • কোড কম্পোজার স্টুডিও (CCS) ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (IDE)

হার্ডওয়্যার:

MSP430G2 লঞ্চপ্যাড ডেভেলপমেন্ট কিট

ধাপ 1: কোড কম্পোজার স্টুডিওতে প্লাগইন হিসাবে YAKINDU স্টেটচার্ট টুলস ইনস্টল করা

কোড কম্পোজার স্টুডিওতে প্লাগইন হিসেবে YAKINDU স্টেটচার্ট টুলস ইনস্টল করা
কোড কম্পোজার স্টুডিওতে প্লাগইন হিসেবে YAKINDU স্টেটচার্ট টুলস ইনস্টল করা
কোড কম্পোজার স্টুডিওতে প্লাগইন হিসেবে YAKINDU স্টেটচার্ট টুলস ইনস্টল করা
কোড কম্পোজার স্টুডিওতে প্লাগইন হিসেবে YAKINDU স্টেটচার্ট টুলস ইনস্টল করা
কোড কম্পোজার স্টুডিওতে প্লাগইন হিসেবে YAKINDU স্টেটচার্ট টুলস ইনস্টল করা
কোড কম্পোজার স্টুডিওতে প্লাগইন হিসেবে YAKINDU স্টেটচার্ট টুলস ইনস্টল করা

প্রথমে, আপনাকে টিআই এর কোড কম্পোজার স্টুডিও ইনস্টল করতে হবে। আমি সফলভাবে CCS সংস্করণ 9.2 এবং পুরোনো একবার সেটআপ পরীক্ষা করেছি। আপনি এখানে একটি ডাউনলোড লিঙ্ক খুঁজে পেতে পারেন:

CCS ডাউনলোড করুন

ডাউনলোডের জন্য ক্লিক করুন এবং নিশ্চিত করুন যে ইনস্টল করার সময় আপনি অন্তত MSP430 আল্ট্রা-লো-পাওয়ার MCU বেছে নিয়েছেন। এদিকে, আপনি YAKINDU স্টেটচার্ট টুলের জন্য আপডেট সাইটটি ধরতে পারেন। যাও:

YAKINDU স্টেটচার্ট টুলস ডাউনলোড করুন

এই সাইটে, ডাউনলোড এখন ক্লিক করুন এবং নির্দেশাবলী অনুসরণ করুন। আপনি ছবিতে দেখতে পারেন: এটি অ-বাণিজ্যিক ব্যবহারের জন্য বিনামূল্যে। নিবন্ধনের পরে, আপনি ডাউনলোড বিকল্পগুলির একটি ওভারভিউ পাবেন। স্ট্যান্ডার্ড ডাউনলোড সাইট এ ক্লিক করুন এবং আপডেট সাইট থেকে ইনস্টল করুন এ ক্লিক করুন। সেখানে আপনি স্টেবল রিলিজের অধীনে একটি লিঙ্ক পাবেন। এই লিঙ্কটি ধরুন এবং এটি সংরক্ষণ করুন বা আপনার ক্লিপবোর্ডে রাখুন।

কোড কম্পোজার স্টুডিওতে YAKINDU স্টেটচার্ট টুলস ইনস্টল করা আপনার জন্য কোড কম্পোজার স্টুডিওর সংস্করণের উপর নির্ভর করে একটু জটিল হতে পারে। হয়তো এই পদক্ষেপগুলি ইতিমধ্যে পুরানো হয়ে গেছে - তবে: যদি আপনার কোন সাহায্যের প্রয়োজন হয় তবে মন্তব্যগুলিতে আমাকে জিজ্ঞাসা করতে দ্বিধা করবেন না।

এগুলি আমার পদক্ষেপ:

আপনার সিস্টেমে সফলভাবে CCS ইনস্টল করার পর, সাহায্য ট্যাবটি খুলুন এবং নতুন সফটওয়্যার ইনস্টল করুন -এ ক্লিক করুন…

download.eclipse.org/releases/2018-09/

কিছু যোগ করবেন না, এটি শুধু সমাধান করা প্রয়োজন। আপনি ছবিতে এটি দেখতে পারেন।

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

অবশেষে, আপনি YAKINDU স্টেটচার্ট সরঞ্জামগুলি ইনস্টল করতে পারেন। শেষ ধাপগুলি পুনরাবৃত্তি করুন, কিন্তু এবার YAKINDU Statechart Tools Standard Edition বেছে নিন। আবার, নির্দেশাবলী অনুসরণ করুন। পুনরায় চালু করার পরে আপনি সফলভাবে YAKINDU স্টেটচার্ট সরঞ্জামগুলি ইনস্টল করেছেন।

ধাপ 2: কোড কম্পোজার স্টুডিওতে স্টেট মেশিন দিয়ে শুরু করা

কোড কম্পোজার স্টুডিওতে স্টেট মেশিন দিয়ে শুরু করা
কোড কম্পোজার স্টুডিওতে স্টেট মেশিন দিয়ে শুরু করা
কোড কম্পোজার স্টুডিওতে স্টেট মেশিন দিয়ে শুরু করা
কোড কম্পোজার স্টুডিওতে স্টেট মেশিন দিয়ে শুরু করা

রাষ্ট্রীয় মেশিনগুলি ব্যবহার করার জন্য স্বাভাবিক হিসাবে এগিয়ে যান এবং একটি নতুন CCS প্রকল্প তৈরি করুন। ফাইল ট্যাব খুলুন, নতুন খুলুন এবং CCS প্রকল্পে ক্লিক করুন। একটি প্রকল্পের নাম সংজ্ঞায়িত করুন, আপনার মাইক্রোকন্ট্রোলার নির্বাচন করুন এবং একটি খালি প্রকল্প তৈরি করুন, যার মধ্যে একটি খালি main.c ফাইল রয়েছে। আমি MSP430G2553 ব্যবহার করেছি।

এখন আপনি রাষ্ট্রীয় মেশিন দিয়ে কাজ শুরু করতে পারেন!

প্রকল্পে ডান ক্লিক করুন, নতুন খুলুন এবং স্টেটচার্ট মডেল নির্বাচন করুন। একটি উইজার্ড খোলা হবে যেখানে আপনি আপনার প্রকল্প নির্বাচন করতে পারেন এবং আপনার স্টেটচার্টের নাম দিতে পারেন। উদাহরণস্বরূপ, এটিকে blinkyStateMachine.sct বলুন।

Finish এ ক্লিক করার পর স্টেটচার্ট মডেলটি প্রজেক্ট ফোল্ডারে উপস্থিত হবে। যদি আপনাকে দৃষ্টিকোণ পরিবর্তন করতে বলা হয় তবে হ্যাঁ ক্লিক করুন।

ধাপ 3: ব্লিঙ্কি স্টেট মেশিন তৈরি করুন

ব্লিঙ্কি স্টেট মেশিন তৈরি করুন
ব্লিঙ্কি স্টেট মেশিন তৈরি করুন

এখন আপনি স্টেটচার্ট তৈরি করতে শুরু করতে পারেন!

বাম দিকে, আপনি তথাকথিত সংজ্ঞা বিভাগ পাবেন। সেখানে আপনি মডেলটিতে পাঠ্য উপাদান যুক্ত করতে পারেন, উদাহরণস্বরূপ, অপারেশন, যা রাষ্ট্রীয় মেশিনে বলা যেতে পারে।

এটি থেকে সবকিছু মুছুন এবং কেবল এই তিনটি অপারেশন সংজ্ঞা যুক্ত করুন:

অভ্যন্তরীণ:

অপারেশন init () অপারেশন redOn () অপারেশন redOff ()

এর পরে, স্টেটচার্ট মডেলে যান এবং তিনটি রাজ্য যুক্ত করুন:

  • আরম্ভ
  • লাল LED চালু
  • লাল LED বন্ধ

ছবিতে দেখানো হিসাবে রাজ্যগুলিকে সংযুক্ত করুন এবং স্থানান্তর এবং প্রবেশ ক্রিয়া যোগ করুন। আপনি তাদের অন্তর্ভুক্ত ছবিতে আবার খুঁজে পেতে পারেন।

ধাপ 4: স্টেট মেশিন সি কোড তৈরি করুন

স্টেট মেশিন সি কোড তৈরি করুন
স্টেট মেশিন সি কোড তৈরি করুন

এখন সি-কোড তৈরির সময়। এটি করার জন্য, একটি জেনারেটর মডেল যোগ করা আবশ্যক। প্রজেক্টটি আবার ডান-ক্লিক করুন এবং নতুন খুলুন এবং কোড জেনারেটর মডেলে ক্লিক করুন। Sgen- ফাইলের জন্য একটি নাম চয়ন করুন। রাষ্ট্রীয় মেশিনের নামের সাথে থাকা একটি ভাল অভ্যাস। এটিকে blinkyStateMachine.sgen কল করুন এবং পরবর্তী ক্লিক করুন। চেকবক্সে ক্লিক করে পছন্দসই স্টেট মেশিন চয়ন করুন। নিশ্চিত করুন যে আপনি YAKINDU SCT C কোড জেনারেটর নির্বাচন করেছেন (যেমন আমরা C- কোড তৈরি করতে চাই) এবং Finish এ ক্লিক করুন।

সাধারণত, সি-কোড স্বয়ংক্রিয়ভাবে উৎপন্ন হবে, কিন্তু যদি না হয়, তাহলে আপনি sgen -file- এ ডান ক্লিক করে জেনারেট কোড আর্টিফ্যাক্ট-এ ক্লিক করতে পারেন। ফোল্ডার src এবং src-gen আপনার প্রকল্পে উপস্থিত হওয়া উচিত। তাদের মধ্যে জেনারেটেড সি-কোড অন্তর্ভুক্ত রয়েছে, যা আপনি স্টেটচার্ট সম্পাদনা এবং সংরক্ষণ করার সময় স্বয়ংক্রিয়ভাবে আপডেট হবে।

যেহেতু এই স্টেটচার্ট সময় ভিত্তিক ইভেন্ট ব্যবহার করে, তাই একটি টাইমার পরিষেবা বাস্তবায়ন করা প্রয়োজন। এটি প্রস্তুত করার জন্য, আপনার এই দুটি ফাইল প্রয়োজন: sc_timer_service.c এবং sc_timer_service.h আপনি সেগুলি GitHub থেকে পেতে পারেন অথবা সেগুলি এখানে ডাউনলোড করতে পারেন। আপনাকে অবশ্যই তাদের src ফোল্ডারে যুক্ত করতে হবে।

ধাপ 5: আপনার কোড থেকে স্টেট মেশিন কল করা

অবশেষে, রাষ্ট্রীয় মেশিনটি আপনার প্রধান কার্যক্রমে ব্যবহার করা যেতে পারে!

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

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত "src-gen/BlinkyStateMachine.h" #অন্তর্ভুক্ত "src/sc_timer_service.h" BlinkyStateMachine blinky; #MAX_TIMERS সংজ্ঞায়িত করুন 4 স্ট্যাটিক sc_timer_t টাইমার [MAX_TIMERS]; স্ট্যাটিক sc_timer_service_t টাইমার_সেবা; //! টাইম ইভেন্টগুলি সেট আপ করার জন্য কলব্যাক বাস্তবায়ন } //! সময় ঘটনা বাতিল করার জন্য কলব্যাক বাস্তবায়ন। বহিরাগত শূন্য blinkyStateMachine_unsetTimer (BlinkyStateMachine* handle, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! অপারেশন সংজ্ঞায়িত করে বাইরের শূন্য blinkyStateMachineInternal_init (const BlinkyStateMachine* handle) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } বাহ্যিক শূন্য blinkyStateMachineInternal_redOn (const BlinkyStateMachine* handle) {P1OUT | = BIT0; } বাহ্যিক শূন্য blinkyStateMachineInternal_redOff (const BlinkyStateMachine* handle) {P1OUT & = IT BIT0; }

প্রধান ফাংশন দুটি অংশ রয়েছে:

স্টেট মেশিনের আরম্ভ এবং এন্টার ফাংশন এবং টাইমারের আরম্ভ।

দ্বিতীয় অংশটি একটি অবিরাম লুপ - যখন (1) লুপ। এই লুপের মধ্যে, স্টেট মেশিনের রান সাইকেল ফাংশনকে বলা হয়। পরে, MSP430 লো পাওয়ার মোড 0 এ সেট করা হবে এবং জেনারেল ইন্টারাপ্ট এনাবল বিট সেট হয়ে যাবে। এখন মাইক্রোকন্ট্রোলার ঘুমাচ্ছে এবং একটি বাধার জন্য অপেক্ষা করছে। WDT এর বাধা পরে, টাইমার এগিয়ে যাবে। এর মানে হল যে প্রতিটি টাইমার আপডেট হয় এবং অতিবাহিত সময় 32 দ্বারা বৃদ্ধি পায় - মিলিসেকেন্ডে সময়, যা WDT এর প্রতিটি বাধা পরে এগিয়ে যায়।

void main (void) {WDTCTL = WDTPW | WDTHOLD; // ওয়াচডগ টাইমার বন্ধ করুন

// ইনট টাইমার এবং স্টেট মেশিন sc_timer_service_init (& timer_service, timers, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);

যখন (1)

{// কল স্টেট মেশিন প্রতি 32 ms blinkyStateMachine_runCycle (& blinky); _bis_SR_register (LPM0_bits + GIE); sc_timer_service_proceed (& timer_service, 32); }}

// WDT ISR

#pragma vector = WDT_VECTOR _interrupt void watchdog_timer (void) {_bic_SR_register_on_exit (LPM0_bits + GIE); }

ধাপ 6: প্রকল্পটি চালান

এটাই - এখন আপনি আপনার এমএসপি 430 এ প্রোগ্রামটি তৈরি এবং আপলোড করতে পারেন!

আশা করি, এই টিউটোরিয়ালটি আপনাকে আপনার MSP430 এর জন্য একটি প্রকল্প সফলভাবে তৈরি করতে সাহায্য করেছে। এখন আপনার নিজের ধারণা বাস্তবায়নের সময়!

কোড তৈরির জন্য, YAKINDU Statechart Tools আপনার কোড কম্পোজার স্টুডিওতে একটি প্লাগইন হিসেবে প্রয়োজন।

আপনি এখানে আপডেট সাইট পেতে পারেন! <

এটি 30 দিনের ট্রায়াল সংস্করণ দিয়ে শুরু হয়। পরে, আপনি অ-বাণিজ্যিক ব্যবহারের জন্য একটি বিনামূল্যে লাইসেন্স পেতে পারেন!

প্রস্তাবিত: