جدول المحتويات:

آلة الحالة المحدودة على MSP430: 6 خطوات
آلة الحالة المحدودة على MSP430: 6 خطوات

فيديو: آلة الحالة المحدودة على MSP430: 6 خطوات

فيديو: آلة الحالة المحدودة على MSP430: 6 خطوات
فيديو: PICKIT2 Programmer (Burner) | How To Burn Your Code (Hex File) To The MCU Chip | Embedded Systems 2024, شهر نوفمبر
Anonim
آلة الحالة المحدودة على MSP430
آلة الحالة المحدودة على MSP430
آلة الحالة المحدودة على MSP430
آلة الحالة المحدودة على MSP430

سأوضح لك كيفية برمجة MSP430G2 Launchpad مع Finite State Machines (FSM) باستخدام YAKINDU Statechart Tools مباشرة في Texas Instruments Code Composer Studio.

يحتوي هذا البرنامج التعليمي على ست خطوات:

  1. تثبيت أدوات YAKINDU Statechart كمكوِّن إضافي لبرنامج Code Composer Studio
  2. الشروع في العمل مع أجهزة الحالة في Code Composer Studio
  3. قم بإنشاء آلة Blinky State
  4. قم بإنشاء كود State Machine C.
  5. استدعاء آلة الدولة من التعليمات البرمجية الخاصة بك
  6. قم بتشغيل المشروع!

يمكن استخدام هذا المشروع كمخطط لأي MPS430 أو MSP432!

اللوازم

برمجة:

  • YAKINDU Statechart Tools
  • Code Composer Studio (CCS) بيئة التطوير المتكاملة (IDE)

المعدات:

مجموعة أدوات تطوير LaunchPad MSP430G2

الخطوة 1: تثبيت أدوات YAKINDU Statechart كبرنامج إضافي لبرنامج Code Composer Studio

تثبيت أدوات YAKINDU Statechart كبرنامج إضافي لبرنامج Code Composer Studio
تثبيت أدوات YAKINDU Statechart كبرنامج إضافي لبرنامج Code Composer Studio
تثبيت أدوات YAKINDU Statechart كبرنامج إضافي لبرنامج Code Composer Studio
تثبيت أدوات YAKINDU Statechart كبرنامج إضافي لبرنامج Code Composer Studio
تثبيت أدوات YAKINDU Statechart كبرنامج إضافي لبرنامج Code Composer Studio
تثبيت أدوات YAKINDU Statechart كبرنامج إضافي لبرنامج Code Composer Studio

أولاً ، تحتاج إلى تثبيت TI's Code Composer Studio. لقد اختبرت الإعداد بنجاح باستخدام الإصدار 9.2 من CCS والإصدارات الأقدم مرة واحدة. يمكنك العثور على رابط التنزيل هنا:

تنزيل CCS

انقر للتنزيل وتأكد من اختيارك على الأقل لوحدات MCU منخفضة الطاقة MSP430 أثناء التثبيت. في غضون ذلك ، يمكنك الحصول على موقع التحديث لأدوات YAKINDU Statechart. اذهب إلى:

قم بتنزيل YAKINDU Statechart Tools

في هذا الموقع ، انقر فوق "تنزيل الآن" واتبع التعليمات. كما ترى في الصورة: إنه مجاني للاستخدام غير التجاري. بعد التسجيل ، ستحصل على نظرة عامة على خيارات التنزيل. انقر فوق STANDARD DOWNLOAD SITE وانقر فوق التثبيت من UPDATE SITE. هناك ستحصل على رابط ضمن الإصدارات المستقرة. احصل على هذا الرابط واحفظه أو ضعه في الحافظة الخاصة بك.

قد يكون تثبيت أدوات YAKINDU Statechart في Code Composer Studio أمرًا صعبًا بعض الشيء ، اعتمادًا على إصدار Code Composer Studio الذي تستخدمه. ربما تكون هذه الخطوات قديمة في هذه الأثناء - ومع ذلك: لا تتردد في سؤالي في التعليقات إذا كنت بحاجة إلى أي مساعدة.

هذه هي خطواتي:

بعد تثبيت CCS بنجاح على نظامك ، افتح علامة التبويب Help وانقر فوق Install New Software… في هذا المعالج ، أضف موقع التحديث التالي عبر الزر Add…:

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

لا تضف أي شيء ، كل ما تحتاجه هو حل. يمكنك أن ترى ذلك في الصورة.

بعد ذلك ، كرر الخطوات وانقر على زر Add…. أدخل موقع تحديث YAKINDU Statechart Tools ، والذي نأمل أن تحفظه. بعد ذلك ، حدد مربع الاختيار إدارة ترخيص YAKINDU وانقر فوق التالي. اتبع التعليمات. قد يتم إعادة تشغيل IDE الخاص بك مرة واحدة.

أخيرًا ، يمكنك تثبيت أدوات YAKINDU Statechart. كرر الخطوات الأخيرة ، ولكن هذه المرة اختر YAKINDU Statechart Tools Standard Edition. مرة أخرى ، اتبع التعليمات. بعد إعادة التشغيل ، قمت بتثبيت أدوات YAKINDU Statechart بنجاح.

الخطوة 2: الشروع في استخدام أجهزة الحالة في Code Composer Studio

الشروع في العمل مع أجهزة الحالة في Code Composer Studio
الشروع في العمل مع أجهزة الحالة في Code Composer Studio
الشروع في العمل مع أجهزة الحالة في Code Composer Studio
الشروع في العمل مع أجهزة الحالة في Code Composer Studio

لاستخدام آلات الحالة ، استمر كالمعتاد وأنشئ مشروع CCS جديدًا. افتح علامة التبويب ملف ، وافتح جديد وانقر على مشروع CCS. حدد اسم المشروع ، واختر متحكمك وأنشئ مشروعًا فارغًا يحتوي على ملف main.c فارغ. لقد استخدمت MSP430G2553.

الآن يمكنك البدء في العمل مع أجهزة الدولة!

انقر بزر الماوس الأيمن فوق المشروع ، وافتح جديد واختر Statechart Model. سيتم فتح معالج يمكنك من خلاله تحديد مشروعك وتسمية مخطط الحالة الخاص بك. على سبيل المثال ، أطلق عليه اسم blinkyStateMachine.sct.

سيظهر نموذج Statechart في مجلد المشروع بعد النقر على إنهاء. انقر فوق "نعم" إذا طُلب منك تغيير المنظور.

الخطوة 3: إنشاء آلة Blinky State

قم بإنشاء آلة Blinky State
قم بإنشاء آلة Blinky State

الآن يمكنك البدء في إنشاء مخطط الحالة!

على الجانب الأيسر ، ستجد ما يسمى بقسم التعريف. هناك يمكنك إضافة عناصر نصية إلى النموذج ، على سبيل المثال ، العمليات ، والتي يمكن استدعاؤها في آلة الحالة.

احذف كل شيء منه وأضف تعريفات العمليات الثلاثة هذه ببساطة:

داخلي:

بدء العملية () عملية redOn () عملية redOff ()

بعد ذلك ، قم بالتبديل إلى نموذج مخطط الحالة وأضف ثلاث حالات:

  • التهيئة
  • الصمام الأحمر قيد التشغيل
  • الصمام الأحمر قبالة

قم بتوصيل الحالات كما هو موضح في الصورة وإضافة الانتقالات وإجراءات الدخول. يمكنك العثور عليها في الصورة المضمنة مرة أخرى.

الخطوة 4: إنشاء كود الجهاز C

قم بإنشاء كود آلة الحالة C
قم بإنشاء كود آلة الحالة C

حان الوقت الآن لإنشاء C-Code. للقيام بذلك ، يجب إضافة نموذج مولد. انقر بزر الماوس الأيمن فوق المشروع مرة أخرى وافتح جديد وانقر على Code Generator Model. اختر اسمًا لملف sgen-. من الممارسات الجيدة البقاء مع اسم آلة الدولة. أطلق عليه اسم blinkyStateMachine.sgen وانقر على التالي. اختر آلة الدولة المطلوبة بالنقر فوق خانة الاختيار. تأكد من أنك قد اخترت مولد كود YAKINDU SCT C (لأننا نريد إنشاء C-Code) وانقر على Finish.

عادةً ، سيتم إنشاء C-Code تلقائيًا ، ولكن إذا لم يحدث ذلك ، يمكنك النقر بزر الماوس الأيمن فوق ملف sgen والنقر فوق إنشاء Code Artifacts للقيام بذلك. يجب أن تظهر المجلدات src و src-gen في مشروعك. وهي تشمل الرمز C الذي تم إنشاؤه ، والذي سيتم تحديثه تلقائيًا عندما تقوم بتحرير وحفظ مخطط الحالة.

نظرًا لأن مخطط الحالة هذا يستخدم أحداثًا تستند إلى الوقت ، يجب تنفيذ خدمة عداد الوقت. لإعداد هذا ، تحتاج إلى هذين الملفين: sc_timer_service.c و sc_timer_service.h يمكنك الحصول عليهما من GitHub أو تنزيلهما من هنا. يجب عليك إضافتها إلى مجلد src.

الخطوة 5: استدعاء آلة الولاية من التعليمات البرمجية الخاصة بك

أخيرًا ، يمكن استخدام آلة الحالة في وظيفتك الرئيسية!

أولاً ، عليك تضمين جهاز الحالة وخدمة المؤقت. ثم يجب إعلان وتعريف آلة الحالة وخدمة المؤقت والوظائف المطلوبة لخدمة المؤقت. بالإضافة إلى ذلك ، يجب تنفيذ العمليات المحددة التي تعمل على تشغيل وإيقاف المصباح الأحمر مرة أخرى.

#يشمل

# تضمين "src-gen / BlinkyStateMachine.h" #include "src / sc_timer_service.h" BlinkyStateMachine blinky؛ #define MAX_TIMERS 4 مؤقتات sc_timer_t [MAX_TIMERS] ؛ ثابت sc_timer_service_t timer_service ؛ //! تنفيذ رد الاتصال لإعداد أحداث الوقت extern void blinkyStateMachine_setTimer (BlinkyStateMachine * handle، const sc_eventid evid، const sc_integer time_ms، const sc_boolean league) {sc_timer_start (& timer_service، handle، evid، time_ms، league) ؛ } //! تنفيذ رد الاتصال لإلغاء أحداث الوقت. blinkyStateMachine_unsetTimer (BlinkyStateMachine * handle، const sc_eventid evid) {sc_timer_cancel (& timer_service، evid)؛ } //! تعريف العمليات الخارجية void blinkyStateMachineInternal_init (const BlinkyStateMachine * handle) {WDTCTL = WDT_MDLY_32 ؛ IE1 | = WDTIE ، P1DIR | = BIT0 ؛ } فارغ خارجي blinkyStateMachineInternal_redOn (const BlinkyStateMachine * handle) {P1OUT | = BIT0 ؛ } void blinkyStateMachineInternal_redOff (const BlinkyStateMachine * handle) {P1OUT & = ~ BIT0؛ }

تتكون الوظيفة الرئيسية من جزأين:

وظيفة التهيئة والدخول لجهاز الحالة وتهيئة المؤقت.

الجزء الثاني عبارة عن حلقة لا نهاية لها - حلقة while (1). ضمن هذه الحلقة ، يتم استدعاء وظيفة دورة التشغيل لجهاز الحالة. بعد ذلك ، سيتم تعيين MSP430 في وضع الطاقة المنخفضة 0 ويتم تعيين بت تمكين المقاطعة العامة. الآن المتحكم الدقيق نائم وينتظر مقاطعة. بعد مقاطعة WDT ، سيستمر المؤقت. هذا يعني أن كل عداد يتم تحديثه ويزداد الوقت المنقضي بمقدار 32 - الوقت بالمللي ثانية ، والذي يستمر بعد كل مقاطعة من WDT.

باطل رئيسي (باطل) {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)

{// call state machine كل 32 مللي ثانية 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: قم بتشغيل المشروع

هذا كل شيء - الآن يمكنك إنشاء البرنامج وتحميله على MSP430 الخاص بك!

نأمل أن يكون هذا البرنامج التعليمي قد ساعدك في إنشاء مشروع بنجاح لبرنامج MSP430 الخاص بك. حان الوقت الآن لتنفيذ أفكارك الخاصة!

لإنشاء الكود ، فإن أدوات YAKINDU Statechart مطلوبة كبرنامج إضافي في Code Composer Studio الخاص بك.

يمكنك الحصول على موقع التحديث هنا! <

يبدأ الإصدار التجريبي لمدة 30 يومًا. بعد ذلك ، يمكنك الحصول على ترخيص مجاني للاستخدام غير التجاري!

موصى به: