Daftar Isi:

Mesin Status Terbatas pada MSP430: 6 Langkah
Mesin Status Terbatas pada MSP430: 6 Langkah

Video: Mesin Status Terbatas pada MSP430: 6 Langkah

Video: Mesin Status Terbatas pada MSP430: 6 Langkah
Video: Intelligent Smart Zone Based Vehicle Speed Control System Using Arduino and RF Transmitter/Receiver 2024, November
Anonim
Mesin Negara Hingga pada MSP430
Mesin Negara Hingga pada MSP430
Mesin Negara Hingga pada MSP430
Mesin Negara Hingga pada MSP430

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:

  1. Memasang YAKINDU Statechart Tools sebagai plugin untuk Code Composer Studio
  2. Memulai dengan State Machines di Code Composer Studio
  3. Buat Mesin Blinky State
  4. Hasilkan kode State Machine C
  5. Memanggil Mesin Negara dari kode Anda
  6. 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

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 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

Memulai Dengan State Machines di Code Composer Studio
Memulai Dengan State Machines di Code Composer Studio
Memulai Dengan State Machines di Code Composer Studio
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

Buat Mesin Blinky State
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

Hasilkan Kode C Mesin Negara
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: