Daftar Isi:
- Perlengkapan
- Langkah 1: Menginstal YAKINDU Statechart Tools Sebagai Plugin ke Code Composer Studio
- Langkah 2: Memulai Dengan State Machines di Code Composer Studio
- Langkah 3: Buat Mesin Blinky State
- Langkah 4: Hasilkan Kode C Mesin Negara
- Langkah 5: Memanggil Mesin Negara Dari Kode Anda
- Langkah 6: Jalankan Proyek
Video: Mesin Status Terbatas pada MSP430: 6 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Saya akan menunjukkan cara memprogram Launchpad MSP430G2 dengan Finite State Machines (FSM) menggunakan YAKINDU Statechart Tools langsung di Texas Instruments Code Composer Studio.
Tutorial ini berisi enam langkah:
- Memasang YAKINDU Statechart Tools sebagai plugin untuk Code Composer Studio
- Memulai dengan State Machines di Code Composer Studio
- Buat Mesin Blinky State
- Hasilkan kode State Machine C
- Memanggil Mesin Negara dari kode Anda
- Jalankan proyek!
Proyek ini dapat digunakan sebagai cetak biru untuk semua MPS430 atau MSP432!
Perlengkapan
Perangkat lunak:
- Alat Bagan Negara YAKINDU
- Code Composer Studio (CCS) Integrated Development Environment (IDE)
Perangkat keras:
Kit Pengembangan LaunchPad MSP430G2
Langkah 1: Menginstal YAKINDU Statechart Tools Sebagai Plugin ke Code Composer Studio
Pertama, Anda perlu menginstal TI's Code Composer Studio. Saya telah berhasil menguji pengaturan dengan CCS versi 9.2 dan lebih lama sekali. Anda dapat menemukan tautan unduhan di sini:
Unduh CCS
Klik untuk mengunduh dan pastikan Anda setidaknya telah memilih MCU berdaya sangat rendah MSP430 saat memasang. Sementara itu, Anda dapat mengambil situs pembaruan untuk YAKINDU Statechart Tools. Pergi ke:
Download YAKINDU Statechart Tools
Di situs ini, klik Unduh Sekarang dan ikuti petunjuknya. Seperti yang Anda lihat di foto: Ini gratis untuk penggunaan non-komersial. Setelah pendaftaran, Anda akan mendapatkan gambaran umum tentang opsi unduhan. Klik SITUS UNDUH STANDAR dan klik INSTAL DARI SITUS PEMBARUAN. Di sana Anda akan mendapatkan tautan di bawah Rilis Stabil. Ambil tautan ini dan simpan atau taruh di clipboard Anda.
Menginstal YAKINDU Statechart Tools ke dalam Code Composer Studio bisa menjadi sedikit rumit, tergantung pada versi Code Composer Studio yang Anda gunakan. Mungkin langkah-langkah ini sudah ketinggalan zaman - namun: jangan ragu untuk bertanya kepada saya di komentar jika Anda memerlukan bantuan.
Ini adalah langkah-langkah saya:
Setelah berhasil menginstal CCS ke sistem Anda, buka tab Bantuan dan klik Instal Perangkat Lunak Baru… Dalam wizard ini, tambahkan situs pembaruan berikut melalui tombol Tambah…:
download. Eclipse.org/releases/2018-09/
Jangan menambahkan apa-apa, itu hanya perlu diselesaikan. Anda bisa melihatnya di gambar.
Setelah ini, ulangi langkah-langkahnya dan klik tombol Add…. Masukkan situs update YAKINDU Statechart Tools, yang mudah-mudahan sudah Anda simpan. Kemudian, pilih kotak centang Manajemen Lisensi YAKINDU dan klik berikutnya. Ikuti petunjuk. IDE Anda dapat dimulai ulang sekali.
Terakhir, Anda dapat menginstal alat YAKINDU Statechart. Ulangi langkah terakhir, tapi kali ini pilih YAKINDU Statechart Tools Standard Edition. Sekali lagi, ikuti petunjuknya. Setelah restart Anda telah berhasil menginstal YAKINDU Statechart Tools.
Langkah 2: Memulai Dengan State Machines di Code Composer Studio
Untuk menggunakan mesin negara, lanjutkan seperti biasa dan buat Proyek CCS baru. Buka tab File, buka Baru dan klik Proyek CCS. Tentukan nama proyek, pilih mikrokontroler Anda dan buat proyek kosong, yang berisi file main.c kosong. Saya menggunakan MSP430G2553.
Sekarang Anda dapat mulai bekerja dengan mesin negara!
Klik kanan proyek, buka New dan pilih Statechart Model. Wizard akan terbuka di mana Anda dapat memilih proyek Anda dan memberi nama statechart Anda. Misalnya, sebut saja blinkyStateMachine.sct.
Model Statechart akan muncul di folder proyek setelah mengklik Finish. Klik Ya jika Anda diminta untuk mengubah perspektif.
Langkah 3: Buat Mesin Blinky State
Sekarang Anda dapat mulai membuat statechart!
Di sisi kiri, Anda akan menemukan apa yang disebut Bagian Definisi. Di sana Anda dapat menambahkan elemen tekstual ke model, misalnya, operasi, yang dapat dipanggil di mesin negara.
Hapus semuanya darinya dan cukup tambahkan tiga definisi operasi ini:
intern:
operasi init() operasi redOn() operasi redOff()
Setelah itu, beralih ke model statechart dan tambahkan tiga status:
- inisialisasi
- LED merah menyala
- LED merah mati
Hubungkan status seperti yang ditunjukkan pada gambar dan tambahkan transisi dan tindakan entri. Anda dapat menemukannya di gambar yang disertakan lagi.
Langkah 4: Hasilkan Kode C Mesin Negara
Sekarang saatnya untuk menghasilkan C-Code. Untuk melakukan ini, model generator harus ditambahkan. Klik kanan proyek sekali lagi dan buka Baru dan klik Model Generator Kode. Pilih nama untuk file sgen. Ini adalah praktik yang baik untuk tetap menggunakan nama mesin negara. Sebut saja blinkyStateMachine.sgen dan klik Next. Pilih State Machine yang diinginkan dengan mengklik kotak centang. Pastikan Anda telah memilih YAKINDU SCT C Code Generator (seperti yang kita inginkan untuk menghasilkan C-Code) dan klik Finish.
Biasanya, C-Code akan dibuat secara otomatis, tetapi jika tidak, Anda dapat mengklik kanan file sgen dan mengklik Generate Code Artifacts untuk melakukannya. Folder src dan src-gen akan muncul di proyek Anda. Mereka termasuk C-Code yang dihasilkan, yang akan diperbarui secara otomatis saat Anda mengedit dan menyimpan statechart.
Karena statechart ini menggunakan event berbasis waktu, layanan timer perlu diimplementasikan. Untuk mempersiapkan ini, Anda memerlukan dua file ini: sc_timer_service.c dan sc_timer_service.h Anda bisa mendapatkannya dari GitHub atau unduh di sini. Anda harus menambahkannya ke folder src.
Langkah 5: Memanggil Mesin Negara Dari Kode Anda
Akhirnya, mesin negara dapat digunakan dalam fungsi utama Anda!
Pertama, Anda harus menyertakan mesin status dan layanan pengatur waktu. Kemudian state machine, layanan timer dan fungsi yang diperlukan untuk layanan timer harus dideklarasikan dan didefinisikan. Selain itu, operasi yang ditentukan yang menyalakan dan mematikan led merah lagi harus diimplementasikan.
#termasuk
#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #define MAX_TIMERS 4 timer sc_timer_t statis[MAX_TIMERS]; sc_timer_service_t timer_service statis; //! implementasi callback untuk pengaturan waktu kejadian extern void blinkyStateMachine_setTimer(BlinkyStateMachine* handle, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) { sc_timer_start(&timer_service, handle, evid, time_ms, periodik); } //! implementasi panggilan balik untuk membatalkan acara waktu. extern void blinkyStateMachine_unsetTimer(pegangan BlinkyStateMachine*, const sc_eventid evid) { sc_timer_cancel(&timer_service, evid); } //! mendefinisikan operasi extern void blinkyStateMachineInternal_init(const BlinkyStateMachine* handle) { WDTCTL = WDT_MDLY_32; IE1 |= WDTIE; P1DIR |= BIT0; } extern void blinkyStateMachineInternal_redOn(const BlinkyStateMachine* handle) { P1OUT |= BIT0; } extern void blinkyStateMachineInternal_redOff(const BlinkyStateMachine* menangani) { P1OUT &= ~BIT0; }
Fungsi utama terdiri dari dua bagian:
Inisialisasi dan fungsi enter dari mesin negara dan inisialisasi timer.
Bagian kedua adalah loop tak berujung - loop while(1). Dalam loop ini, fungsi run cycle dari state machine disebut. Setelah itu, MSP430 akan diatur ke Low Power Mode 0 dan bit General Interrupt Enable akan diatur. Sekarang mikrokontroler sedang tidur dan menunggu interupsi. Setelah interupsi WDT, timer akan melanjutkan. Ini berarti bahwa setiap penghitung waktu diperbarui dan waktu yang telah berlalu bertambah 32 - waktu dalam milidetik, yang dilanjutkan setelah setiap interupsi WDT.
void main(void) { WDTCTL = WDTPW | WDTHOLD; // Hentikan pengatur waktu pengawas
// Init timer dan state machine sc_timer_service_init(&timer_service, timer, MAX_TIMERS, (sc_raise_time_event_fp) &blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init(&berkedip); blinkyStateMachine_enter(&berkedip);
sementara (1)
{ // memanggil state machine setiap 32 md 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); }
Langkah 6: Jalankan Proyek
Itu saja - Sekarang Anda dapat membuat dan mengunggah program ke MSP430 Anda!
Semoga tutorial ini membantu Anda untuk berhasil membuat proyek untuk MSP430 Anda. Sekarang saatnya untuk menerapkan ide-ide Anda sendiri!
Untuk pembuatan kode, YAKINDU Statechart Tools diperlukan sebagai Plugin di Code Composer Studio Anda.
Anda bisa mendapatkan situs pembaruan di sini! <
Ini dimulai dengan versi uji coba 30 hari. Setelah itu, Anda bisa mendapatkan lisensi gratis untuk penggunaan non-komersial!
Direkomendasikan:
Platformer Dengan Level Tak Terbatas di GameGo Dengan Makecode Arcade: 5 Langkah (dengan Gambar)
Platformer Dengan Level Tak Terbatas di GameGo Dengan Makecode Arcade: GameGo adalah konsol portabel game retro kompatibel Microsoft Makecode yang dikembangkan oleh pendidikan TinkerGen STEM. Ini didasarkan pada chip STM32F401RET6 ARM Cortex M4 dan dibuat untuk pendidik STEM atau hanya orang-orang yang suka bersenang-senang membuat video game retro
Laptop dengan Anggaran Terbatas: Opsi Pembangkit Listrik Berbiaya Rendah (Dua Drive Internal, Berbasis Lenovo): 3 Langkah
Laptop dengan Anggaran Terbatas: Opsi Pembangkit Listrik Berbiaya Rendah (Dua Drive Internal, Berbasis Lenovo): Instruksi ini akan berfokus pada konfigurasi yang diperbarui ke laptop Lenovo T540p sebagai mesin driver harian untuk penelusuran web, pengolah kata, permainan ringan, dan audio . Ini dikonfigurasi dengan penyimpanan solid-state dan mekanis untuk kecepatan dan kapasitas
Jam Tak Terbatas yang Dikendalikan Smartphone: 5 Langkah (dengan Gambar)
Jam Infinite Terkendali Smartphone: Saya telah melihat banyak proyek Infinity Mirrors dan Infinity Clocks di Instructables, jadi saya memutuskan untuk membuatnya menjadi milik saya. Ini mungkin tidak jauh berbeda dari yang lain… tapi saya melakukannya sendiri, jadi ! Jika Anda belum mengetahuinya: Apa itu infinity
Sirkuit Belajar NANO: Satu PCB. Mudah untuk dipelajari. Kemungkinan Tak Terbatas.: 12 Langkah (dengan Gambar)
Sirkuit Belajar NANO: Satu PCB. Mudah untuk dipelajari. Kemungkinan Tak Terbatas.: Memulai di dunia elektronik dan robotika bisa sangat menakutkan pada awalnya. Ada banyak hal yang harus dipelajari di awal (desain sirkuit, menyolder, memprogram, memilih komponen elektronik yang tepat, dll) dan ketika terjadi kesalahan
Disko Tak Terbatas: 6 Langkah (dengan Gambar)
Infinite Disco: Dalam proyek ini, saya membuat cermin infinity berdasarkan dodecahedron yang bereaksi terhadap suara