Sadržaj:

Mašina konačnih stanja na MSP430: 6 koraka
Mašina konačnih stanja na MSP430: 6 koraka

Video: Mašina konačnih stanja na MSP430: 6 koraka

Video: Mašina konačnih stanja na MSP430: 6 koraka
Video: Стиральная машина не блокирует люк (ошибка dE) 2024, Juli
Anonim
Mašina konačnih stanja na MSP430
Mašina konačnih stanja na MSP430
Mašina konačnih stanja na MSP430
Mašina konačnih stanja na MSP430

Pokazat ću vam kako programirati MSP430G2 Launchpad s Finite State Machines (FSM) koristeći YAKINDU Statechart Tools izravno u Texas Instruments Code Composer Studio.

Ovaj vodič sadrži šest koraka:

  1. Instaliranje YAKINDU alata za dijagrame stanja kao dodatka za Code Composer Studio
  2. Početak rada sa državnim mašinama u Code Composer Studiu
  3. Kreirajte Blinky State Machine
  4. Generirajte State Machine C kod
  5. Pozivanje State Machine -a iz vašeg koda
  6. Pokrenite projekat!

Ovaj se projekt može koristiti kao nacrt za bilo koji MPS430 ili MSP432!

Supplies

Softver:

  • YAKINDU Alati dijagrama stanja
  • Code Composer Studio (CCS) Integrirano razvojno okruženje (IDE)

Hardver:

MSP430G2 LaunchPad razvojni komplet

Korak 1: Instaliranje YAKINDU alata dijagrama stanja kao dodatka za Code Composer Studio

Instaliranje YAKINDU alata dijagrama stanja kao dodatka za Code Composer Studio
Instaliranje YAKINDU alata dijagrama stanja kao dodatka za Code Composer Studio
Instaliranje YAKINDU alata za grafikone stanja kao dodatka za Code Composer Studio
Instaliranje YAKINDU alata za grafikone stanja kao dodatka za Code Composer Studio
Instaliranje YAKINDU alata dijagrama stanja kao dodatka za Code Composer Studio
Instaliranje YAKINDU alata dijagrama stanja kao dodatka za Code Composer Studio

Prvo morate instalirati TI Code Composer Studio. Jednom sam uspješno testirao instalaciju sa CCS verzijom 9.2 i starijom. Link za preuzimanje možete pronaći ovdje:

Preuzmite CCS

Kliknite za preuzimanje i provjerite jeste li tijekom instalacije barem odabrali MCU-ove ultra male snage MSP430. U međuvremenu, možete preuzeti web lokaciju za ažuriranje za YAKINDU alatke grafikona stanja. Idi:

Preuzmite YAKINDU alate za grafikone stanja

Na ovoj web stranici kliknite Preuzmi sada i slijedite upute. Kao što možete vidjeti na fotografiji: Besplatno je za nekomercijalnu upotrebu. Nakon registracije dobit ćete pregled opcija preuzimanja. Kliknite na STANDARDNO DOWNLOAD SITE i kliknite na INSTALL FROM UPDATE SITE. Tamo ćete dobiti vezu pod Stable Releases. Dohvatite ovu vezu i spremite je ili stavite u međuspremnik.

Instaliranje YAKINDU alata za dijagrame stanja u Code Composer Studio može biti malo zeznuto, ovisno o verziji Code Composer Studia koju koristite. Možda su ovi koraci u međuvremenu zastarjeli - međutim: ne ustručavajte se pitati me u komentarima ako vam je potrebna pomoć.

Ovo su moji koraci:

Nakon što ste uspješno instalirali CCS na svoj sistem, otvorite karticu Pomoć i kliknite na Instaliraj novi softver … U ovom čarobnjaku dodajte sljedeće mjesto za ažuriranje putem gumba Dodaj …:

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

Nemojte ništa dodavati, samo to treba riješiti. To možete vidjeti na slici.

Nakon toga ponovite korake i kliknite gumb Dodaj…. Umetnite web lokaciju za ažuriranje alata YAKINDU Statechart Tools koju ste, nadamo se, sačuvali. Zatim potvrdite okvir YAKINDU License Management i kliknite na next. Slijedite upute. Vaš IDE se može ponovo pokrenuti.

Na kraju, možete instalirati alate YAKINDU Statechart. Ponovite posljednje korake, ali ovaj put odaberite YAKINDU Statechart Tools Standard Edition. Još jednom slijedite upute. Nakon ponovnog pokretanja uspješno ste instalirali YAKINDU Alate za dijagram stanja.

Korak 2: Početak rada sa državnim mašinama u Code Composer studiju

Početak rada sa državnim mašinama u Code Composer studiju
Početak rada sa državnim mašinama u Code Composer studiju
Početak rada sa državnim mašinama u Code Composer studiju
Početak rada sa državnim mašinama u Code Composer studiju

Za korištenje državnih strojeva nastavite normalno i stvorite novi CCS projekt. Otvorite karticu Datoteka, otvorite Novo i kliknite na CCS Project. Definirajte naziv projekta, odaberite svoj mikrokontroler i kreirajte prazan projekt koji sadrži praznu datoteku main.c. Koristio sam MSP430G2553.

Sada možete početi raditi sa državnim mašinama!

Desnom tipkom miša kliknite projekt, otvorite Novo i odaberite Model grafikona stanja. Otvorit će se čarobnjak u kojem možete odabrati svoj projekt i imenovati svoju grafikon stanja. Na primjer, nazovite ga blinkyStateMachine.sct.

Model Statechart će se pojaviti u fascikli projekta nakon što kliknete na Finish. Pritisnite Da ako se od vas zatraži da promijenite perspektivu.

Korak 3: Kreirajte Blinky State Machine

Kreirajte Blinky State Machine
Kreirajte Blinky State Machine

Sada možete početi stvarati grafikon stanja!

Na lijevoj strani pronaći ćete takozvani odjeljak definicije. Tamo modelu možete dodati tekstualne elemente, na primjer operacije, koje se mogu pozvati na državnom stroju.

Izbrišite sve iz njega i jednostavno dodajte ove tri definicije operacije:

unutrašnji:

operacija init () operacija redOn () operacija redOff ()

Nakon toga pređite na model grafikona stanja i dodajte tri stanja:

  • Inicijalizacija
  • crvena LED lampica uključena
  • crvena LED isključena

Povežite stanja kao što je prikazano na slici i dodajte prijelaze i radnje unosa. Ponovo ih možete pronaći na priloženoj slici.

Korak 4: Generirajte C kod državne mašine

Generirajte C kod državne mašine
Generirajte C kod državne mašine

Sada je vrijeme za generiranje C-koda. Da biste to učinili, morate dodati model generatora. Desnom tipkom miša kliknite projekt još jednom i otvorite New, a zatim kliknite Code Generator Model. Odaberite ime za sgen-datoteku. Dobra je praksa ostati pri nazivu državnog stroja. Nazovite to blinkyStateMachine.sgen i kliknite Dalje. Odaberite željeni State Machine klikom na potvrdni okvir. Uvjerite se da ste odabrali YAKINDU SCT C Generator koda (jer želimo generirati C-kod) i kliknite na Završi.

Obično će se C-kôd automatski generirati, ali ako nije, možete desnom tipkom miša kliknuti datoteku sgen i kliknuti na Generiraj artefakte koda da biste to učinili. Mape src i src-gen trebale bi se pojaviti u vašem projektu. Oni uključuju generirani C-kod, koji će se automatski ažurirati kada uredite i spremite grafikon stanja.

Budući da ovaj grafikon stanja koristi događaje zasnovane na vremenu, potrebno je implementirati uslugu tajmera. Da biste to pripremili, potrebne su vam dvije datoteke: sc_timer_service.c i sc_timer_service.h Možete ih preuzeti sa GitHub -a ili ih preuzeti ovdje. Morate ih dodati u mapu src.

Korak 5: Pozivanje državne mašine iz vašeg koda

Konačno, mašina za stanje može se koristiti u vašoj glavnoj funkciji!

Prvo morate uključiti državnu mašinu i uslugu mjerača vremena. Tada se državni stroj, servis tajmera i potrebne funkcije za timer moraju deklarirati i definirati. Dodatno, moraju se provesti definirane operacije koje ponovo uključuju i isključuju crveno svjetlo.

#include

#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #define MAX_TIMERS 4 statička tajmera sc_timer_t [MAX_TIMERS]; statička sc_timer_service_t timer_service; //! implementacija povratnog poziva za postavljanje vremenskih događaja 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, periodic); } //! implementacija povratnog poziva za otkazivanje vremenskih događaja. extern void blinkyStateMachine_unsetTimer (BlinkyStateMachine* ručka, const sc_eventid evidencija) {sc_timer_cancel (& timer_service, evidencija); } //! definiranje operacija 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* handle) {P1OUT & = ~ BIT0; }

Glavna funkcija sadrži dva dijela:

Inicijalizacija i enter funkcija državne mašine i inicijalizacija tajmera.

Drugi dio je beskonačna petlja - while (1) petlja. Unutar ove petlje poziva se funkcija ciklusa rada stroja stanja. Nakon toga, MSP430 će se postaviti u način rada niske potrošnje 0 i bit će postavljen bit za omogućavanje općeg prekida. Sada mikrokontroler spava i čeka prekid. Nakon prekida WDT -a, mjerač vremena će nastaviti. To znači da se svaki tajmer ažurira, a proteklo vrijeme povećava za 32 - vrijeme u milisekundama, koje se nastavlja nakon svakog prekida WDT -a.

void main (void) {WDTCTL = WDTPW | WDTHOLD; // Zaustavi nadzorni mjerač vremena

// Pokretanje mjerača vremena i računara stanja sc_timer_service_init (& timer_service, timers, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);

dok (1)

{// pozivajte državnu mašinu svakih 32 ms 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); }

Korak 6: Pokrenite projekt

To je to - sada možete izgraditi i prenijeti program na svoj MSP430!

Nadajmo se da vam je ovaj vodič pomogao u uspješnom stvaranju projekta za vaš MSP430. Sada je vrijeme da implementirate vlastite ideje!

Za generiranje koda potrebni su YAKINDU alati za grafikone stanja kao dodatak u vašem Code Composer Studiju.

Web lokaciju za ažuriranje možete dobiti ovdje! <

Počinje probnom verzijom od 30 dana. Nakon toga možete dobiti besplatnu licencu za nekomercijalnu upotrebu!

Preporučuje se: