Isi kandungan:

Mesin Keadaan Terhingga pada MSP430: 6 Langkah
Mesin Keadaan Terhingga pada MSP430: 6 Langkah

Video: Mesin Keadaan Terhingga pada MSP430: 6 Langkah

Video: Mesin Keadaan Terhingga pada MSP430: 6 Langkah
Video: Four quadrant chopper - 1 HP DC machine speed and Direction controlling using IGBTs 2024, Julai
Anonim
Mesin Keadaan Terhingga pada MSP430
Mesin Keadaan Terhingga pada MSP430
Mesin Keadaan Terhingga pada MSP430
Mesin Keadaan Terhingga pada MSP430

Saya akan menunjukkan kepada anda cara memprogram MSP430G2 Launchpad dengan Finite State Machines (FSM) menggunakan YAKINDU Statechart Tools secara langsung di Texas Instruments Code Composer Studio.

Tutorial ini mengandungi enam langkah:

  1. Memasang YAKINDU Statechart Tools sebagai pemalam ke Code Composer Studio
  2. Bermula dengan Mesin Negeri di Code Composer Studio
  3. Buat Mesin Blinky State
  4. Hasilkan kod C Mesin Negeri
  5. Memanggil Mesin Negeri dari kod anda
  6. Jalankan projek!

Projek ini boleh digunakan sebagai cetak biru untuk mana-mana MPS430 atau MSP432!

Bekalan

Perisian:

  • Alat Carta Negeri YAKINDU
  • Code Composer Studio (CCS) Persekitaran Pembangunan Bersepadu (IDE)

Perkakasan:

Kit Pembangunan LaunchPad MSP430G2

Langkah 1: Memasang Alat Statechart YAKINDU Sebagai Plugin ke Code Composer Studio

Memasang Alat Statechart YAKINDU Sebagai Plugin ke Code Composer Studio
Memasang Alat Statechart YAKINDU Sebagai Plugin ke Code Composer Studio
Memasang Alat Statechart YAKINDU Sebagai Plugin ke Code Composer Studio
Memasang Alat Statechart YAKINDU Sebagai Plugin ke Code Composer Studio
Memasang Alat Statechart YAKINDU Sebagai Plugin ke Code Composer Studio
Memasang Alat Statechart YAKINDU Sebagai Plugin ke Code Composer Studio

Pertama, anda perlu memasang TI's Code Composer Studio. Saya berjaya menguji persediaan dengan CCS versi 9.2 dan lebih lama sekali. Anda boleh mendapatkan pautan muat turun di sini:

Muat turun CCS

Klik untuk memuat turun dan pastikan anda sekurang-kurangnya memilih MCU berkuasa rendah MSP430 semasa memasang. Sementara itu, anda boleh merebut laman kemas kini untuk YAKINDU Statechart Tools. Pergi ke:

Muat turun Alat Carta Negeri YAKINDU

Di laman web ini, klik Muat turun Sekarang dan ikuti arahannya. Seperti yang anda lihat dalam foto: Percuma untuk penggunaan bukan komersial. Selepas pendaftaran, anda akan mendapat gambaran keseluruhan pilihan muat turun. Klik pada STANDARD DOWNLOAD SITE dan klik pada INSTALL FROM UPDATE SITE. Di sana anda akan mendapat pautan di bawah Stabil Release. Dapatkan pautan ini dan simpan atau masukkan ke papan keratan anda.

Memasang YAKINDU Statechart Tools ke Code Composer Studio sedikit sukar, bergantung pada versi Code Composer Studio yang anda gunakan. Mungkin langkah-langkah ini sudah ketinggalan zaman - namun: jangan ragu untuk bertanya pada saya jika anda memerlukan bantuan.

Ini adalah langkah saya:

Setelah berjaya memasang CCS ke sistem anda, buka tab Bantuan dan klik pada Pasang Perisian Baru … Di wizard ini, tambahkan laman kemas kini berikut melalui butang Tambah…:

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

Jangan tambah apa-apa, ia hanya perlu diselesaikan. Anda boleh melihatnya dalam gambar.

Selepas ini, ulangi langkahnya dan klik pada butang Tambah…. Masukkan laman kemas kini YAKINDU Statechart Tools, yang semoga anda simpan. Kemudian, pilih kotak semak Pengurusan Lesen YAKINDU dan klik seterusnya. Ikut arahan. IDE anda boleh dimulakan semula sekali.

Akhirnya, anda boleh memasang alat YAKINDU Statechart. Ulangi langkah terakhir, tetapi kali ini pilih YAKINDU Statechart Tools Standard Edition. Sekali lagi, ikuti arahan. Selepas memulakan semula anda telah berjaya memasang YAKINDU Statechart Tools.

Langkah 2: Bermula dengan Mesin Negeri di Code Composer Studio

Bermula dengan Mesin Negeri di Code Composer Studio
Bermula dengan Mesin Negeri di Code Composer Studio
Bermula dengan Mesin Negeri di Code Composer Studio
Bermula dengan Mesin Negeri di Code Composer Studio

Untuk menggunakan mesin keadaan terus seperti biasa dan buat Projek CCS baru. Buka tab Fail, buka Baru dan klik pada Projek CCS. Tentukan nama projek, pilih mikrokontroler anda dan buat projek kosong, yang mengandungi fail main.c kosong. Saya menggunakan MSP430G2553.

Sekarang anda boleh mula bekerja dengan mesin negara!

Klik kanan projek, buka Baru dan pilih Model Statechart. Wizard akan dibuka di mana anda boleh memilih projek anda dan menamakan carta negeri anda. Contohnya, panggil ia blinkyStateMachine.sct.

Model Statechart akan muncul di folder projek setelah mengklik Selesai. Klik Ya jika anda diminta mengubah perspektif.

Langkah 3: Buat Mesin Keadaan Blinky

Buat Mesin Blinky State
Buat Mesin Blinky State

Sekarang anda boleh mula membuat carta negeri!

Di sebelah kiri, anda akan menemui Bahagian Definisi yang disebut. Di sana anda dapat menambahkan elemen teks pada model, misalnya, operasi, yang dapat disebut di mesin negara.

Padamkan semua daripadanya dan tambah tiga definisi operasi ini:

dalaman:

operasi init () operasi redOn () operasi redOff ()

Selepas itu, beralih ke model carta keadaan dan tambahkan tiga keadaan:

  • Permulaan
  • LED merah menyala
  • LED merah mati

Sambungkan keadaan seperti yang ditunjukkan pada gambar dan tambahkan peralihan dan tindakan masuk. Anda boleh mendapatkannya di gambar yang disertakan sekali lagi.

Langkah 4: Hasilkan Kod Mesin Mesin Negeri

Hasilkan Kod C Mesin Negeri
Hasilkan Kod C Mesin Negeri

Kini tiba masanya untuk menghasilkan C-Code. Untuk melakukan ini, model penjana mesti ditambah. Klik kanan projek sekali lagi dan buka Baru dan klik pada Model Generator Kod. Pilih nama untuk fail sgen. Merupakan amalan yang baik untuk terus menggunakan nama mesin negara. Panggil ia blinkyStateMachine.sgen dan klik Next. Pilih Mesin Negeri yang dikehendaki dengan mengklik kotak pilihan. Pastikan bahawa anda telah memilih Generator Kod YAKINDU SCT C (kerana kami ingin menjana C-Code) dan klik Selesai.

Biasanya, C-Code akan dihasilkan secara automatik, tetapi jika tidak, anda boleh mengklik kanan sgen -file dan mengklik Generate Code Artifacts untuk melakukannya. Folder src dan src-gen akan muncul dalam projek anda. Ini termasuk C-Code yang dihasilkan, yang akan diperbarui secara automatik ketika anda mengedit dan menyimpan carta negara.

Oleh kerana carta negeri ini menggunakan acara berdasarkan masa, perkhidmatan pemasa perlu dilaksanakan. Untuk menyediakannya, anda memerlukan dua fail berikut: sc_timer_service.c dan sc_timer_service.h Anda boleh mendapatkannya dari GitHub atau memuat turunnya di sini. Anda mesti menambahkannya ke folder src.

Langkah 5: Memanggil Mesin Negara Dari Kod Anda

Akhirnya, mesin negara dapat digunakan dalam fungsi utama anda!

Pertama, anda mesti memasukkan mesin keadaan dan perkhidmatan pemasa. Kemudian mesin keadaan, perkhidmatan pemasa dan fungsi yang diperlukan untuk perkhidmatan pemasa mesti dinyatakan dan ditentukan. Selain itu, operasi yang ditentukan yang menghidupkan dan mematikan lampu merah mesti dilaksanakan.

#sertakan

#include "src-gen / BlinkyStateMachine.h" #include "src / sc_timer_service.h" BlinkyStateMachine berkelip; #tentukan MAX_TIMERS 4 pemasa sc_timer_t statik [MAX_TIMERS]; stat_timer_service_t pemasa_servis statik; //! pelaksanaan panggilan balik untuk mengatur acara waktu extern void blinkyStateMachine_setTimer (pemegang BlinkyStateMachine *, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) {sc_timer_start (& timer_service, handle, evid, time_ms, periodic); } //! pelaksanaan panggilan balik untuk membatalkan acara masa. extern void blinkyStateMachine_unsetTimer (pemegang BlinkyStateMachine *, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! mentakrifkan operasi external void blinkyStateMachineInternal_init (const BlinkyStateMachine * handle) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } luaran void blinkyStateMachineInternal_redOn (const BlinkyStateMachine * pemegang) {P1OUT | = BIT0; } luaran void blinkyStateMachineInternal_redOff (const BlinkyStateMachine * pemegang) {P1OUT & = ~ BIT0; }

Fungsi utama mengandungi dua bahagian:

Permulaan dan fungsi masuk mesin keadaan dan inisialisasi pemasa.

Bahagian kedua adalah gelung tanpa henti - gelung sementara (1). Dalam gelung ini, fungsi kitaran larian mesin keadaan dipanggil. Selepas itu, MSP430 akan diatur ke Mod Daya Rendah 0 dan bit General Interrupt Enable disetel. Sekarang mikrokontroler sedang tidur dan menunggu gangguan. Selepas gangguan WDT, pemasa akan diteruskan. Ini bermaksud bahawa setiap pemasa akan dikemas kini dan masa yang berlalu akan bertambah sebanyak 32 - masa dalam milisaat, yang dilanjutkan setelah setiap gangguan WDT.

kekosongan utama (kekosongan) {WDTCTL = WDTPW | WDTHOLD; // Hentikan pemasa pengawas

// Pemasa masuk dan mesin keadaan sc_timer_service_init (& timer_service, timer, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& berkelip); blinkyStateMachine_enter (& berkelip);

semasa (1)

{// mesin keadaan panggilan setiap 32 ms blinkyStateMachine_runCycle (& berkelip); _bis_SR_register (LPM0_bits + GIE); sc_timer_service_proceed (& timer_service, 32); }}

// WDT ISR

#pragma vektor = WDT_VECTOR _interoid void watchdog_timer (void) {_bic_SR_register_on_exit (LPM0_bits + GIE); }

Langkah 6: Jalankan Projek

Itu sahaja - Sekarang anda boleh membina dan memuat naik program ke MSP430 anda!

Semoga tutorial ini membantu anda berjaya membuat projek untuk MSP430 anda. Kini tiba masanya untuk melaksanakan idea anda sendiri!

Untuk penjanaan kod, YAKINDU Statechart Tools diperlukan sebagai Plugin di Code Composer Studio anda.

Anda boleh mendapatkan laman kemas kini di sini! <

Ia bermula dengan versi percubaan 30 hari. Selepas itu, anda boleh mendapatkan lesen percuma untuk penggunaan bukan komersial!

Disyorkan: