Isi kandungan:
- Bekalan
- Langkah 1: Memasang Alat Statechart YAKINDU Sebagai Plugin ke Code Composer Studio
- Langkah 2: Bermula dengan Mesin Negeri di Code Composer Studio
- Langkah 3: Buat Mesin Keadaan Blinky
- Langkah 4: Hasilkan Kod Mesin Mesin Negeri
- Langkah 5: Memanggil Mesin Negara Dari Kod Anda
- Langkah 6: Jalankan Projek
Video: Mesin Keadaan Terhingga pada MSP430: 6 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
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:
- Memasang YAKINDU Statechart Tools sebagai pemalam ke Code Composer Studio
- Bermula dengan Mesin Negeri di Code Composer Studio
- Buat Mesin Blinky State
- Hasilkan kod C Mesin Negeri
- Memanggil Mesin Negeri dari kod anda
- 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
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
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
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
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:
Buat Relay Keadaan Pepejal Sendiri: 4 Langkah (dengan Gambar)
Buat Relay Solid State Sendiri: Dalam projek ini kita akan melihat relay keadaan pepejal, mengetahui bagaimana ia berfungsi dan kapan menggunakannya dan akhirnya membuat Relay Solid State DIY kita sendiri. Mari kita mulakan
Gegelung Tesla Keadaan Pepejal dan Cara Kerja: 9 Langkah
Gegelung Tesla Keadaan Pepejal dan Cara Kerja: Elektrik voltan tinggi boleh BERBAHAYA, gunakan langkah keselamatan yang betul setiap masa semasa bekerja dengan gegelung Tesla atau alat voltan tinggi yang lain, jadi mainkan dengan selamat atau jangan bermain. Gelung Tesla adalah pengubah yang beroperasi pada osilato bergema sendiri
Jam Digital di Arduino Menggunakan Mesin Keadaan Terhingga: 6 Langkah
Jam Digital di Arduino Menggunakan Mesin Keadaan Terhingga: Hai, saya akan menunjukkan kepada anda bagaimana jam tangan digital dapat dibuat dengan Alat Statechart YAKINDU dan dijalankan di Arduino, yang menggunakan Perisai Keypad LCD. Model asal digital jam tangan diambil dari David Harel. Dia telah menerbitkan sebuah makalah mengenai
Cara Memasang Pemacu Boot Keadaan Pepejal: 9 Langkah
Cara Memasang Pemacu Boot Keadaan Pepejal: Dengan Teknologi maju pada tahap yang sekarang semuanya beralih ke dunia pengkomputeran dan media digital. Dengan peralihan ini, kita melihat semakin banyak orang memasuki bidang pendidikan mengenai topik-topik seperti Sains Komputer atau
Jarak Jauh automatik ON / OFF Menggunakan Jack MIC pada Camcorder Anda / Relay Keadaan Pepejal Voltan Rendah: 4 Langkah (dengan Gambar)
Jauh / Mati Jauh automatik Menggunakan Jack MIC pada Camcorder Anda / Relay Keadaan Pepejal Voltan Rendah: Gambaran keseluruhan: Kami menggunakan bicu MIC camcorder untuk mengesan ketika camcorder dihidupkan. Kami membina relay keadaan pepejal rendah untuk mengesan bicu MIC dan menghidupkan dan mematikan peranti jauh secara automatik pada masa yang sama dengan camcorder. Keadaan pepejal