Sadržaj:

Stroj konačnih stanja na MSP430: 6 koraka
Stroj konačnih stanja na MSP430: 6 koraka

Video: Stroj konačnih stanja na MSP430: 6 koraka

Video: Stroj konačnih stanja na MSP430: 6 koraka
Video: СКОЛЬКО МОЖНО ПЕРЕЕЗЖАТЬ? Постройка своего дома в Японии и жизнь в Фукуока 2024, Studeni
Anonim
Stroj konačnih stanja na MSP430
Stroj konačnih stanja na MSP430
Stroj konačnih stanja na MSP430
Stroj konačnih stanja na MSP430

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

Ovaj vodič sadrži šest koraka:

  1. Instaliranje YAKINDU alata za grafikone stanja kao dodatka za Code Composer Studio
  2. Početak rada s državnim strojevima u Code Composer Studiu
  3. Napravite Blinky State Machine
  4. Generirajte C kod stroja State Machine
  5. Pozivanje State Machine -a iz vašeg koda
  6. Pokrenite projekt!

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

Pribor

Softver:

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

Hardver:

Komplet za razvoj LaunchPada MSP430G2

Korak 1: Instaliranje YAKINDU alata za dijagram 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 za grafikone 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 za grafikone stanja kao dodatka za Code Composer Studio

Prvo morate instalirati TI Code Composer Studio. Jednom sam uspješno testirao instalaciju s CCS -om verzije 9.2 i starije. 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 dohvatiti web mjesto za ažuriranje alata za grafikone stanja YAKINDU. Ići:

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 uporabu. Nakon registracije dobit ćete pregled mogućnosti preuzimanja. Pritisnite STANDARD DOWNLOAD SITE i kliknite INSTALL FROM UPDATE SITE. Tamo ćete dobiti vezu pod Stabilna izdanja. 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 ti koraci u međuvremenu zastarjeli - međutim: ne ustručavajte se pitati me u komentarima trebate li pomoć.

Ovo su moji koraci:

Nakon što ste uspješno instalirali CCS na svoj sustav, otvorite karticu Pomoć i kliknite 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 mjesto za ažuriranje alata YAKINDU Statechart Tools koje ste, nadamo se, spremili. Zatim potvrdite okvir YAKINDU License Management i kliknite na next. Slijedi upute. Vaš IDE se može jednom 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 grafikone stanja.

Korak 2: Početak rada s državnim strojevima u Code Composer Studiu

Početak rada s državnim strojevima u Code Composer Studiu
Početak rada s državnim strojevima u Code Composer Studiu
Početak rada s državnim strojevima u Code Composer Studiu
Početak rada s državnim strojevima u Code Composer Studiu

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

Sada možete početi raditi s državnim strojevima!

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 pojavit će se u mapi projekta nakon što kliknete na Finish. Pritisnite Da ako se od vas traži da promijenite perspektivu.

Korak 3: Stvorite Blinky State Machine

Napravite Blinky State Machine
Napravite Blinky State Machine

Sada možete početi stvarati grafikon stanja!

S lijeve strane pronaći ćete takozvani Odjeljak definicija. Tamo modelu možete dodati tekstualne elemente, na primjer operacije, koje se mogu pozvati u stroju stanja.

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

unutarnji:

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

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

  • Inicijalizacija
  • crvena LED upaljena
  • 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. Još jednom desnom tipkom miša kliknite projekt i otvorite New, a zatim kliknite Model Generatora koda. Odaberite naziv za sgen-datoteku. Dobra je praksa ostati pri nazivu državnog stroja. Nazovite ga blinkyStateMachine.sgen i kliknite Dalje. Odaberite željeni State Machine klikom na potvrdni okvir. Provjerite jeste li odabrali YAKINDU SCT C Generator koda (jer želimo generirati C-kôd) i kliknite Završi.

Obično će se C-kôd automatski generirati, ali ako nije, možete desnom tipkom miša kliknuti sgen -datoteku 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 temeljene na vremenu, potrebno je implementirati uslugu mjerača vremena. Da biste to pripremili, potrebne su vam dvije datoteke: sc_timer_service.c i sc_timer_service.h Možete ih preuzeti s GitHub -a ili ih preuzeti ovdje. Morate ih dodati u mapu src.

Korak 5: Pozivanje državnog stroja iz vašeg koda

Konačno, državni stroj se može koristiti u vašoj glavnoj funkciji!

Prvo morate uključiti državnu mašinu i uslugu mjerača vremena. Zatim se moraju deklarirati i definirati državni stroj, usluga mjerenja vremena i potrebne funkcije za uslugu mjerenja vremena. Osim toga, moraju se provesti definirane operacije koje ponovno uključuju i isključuju crveno svjetlo.

#uključi

#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 usluga 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* ručka) {P1OUT | = BIT0; } extern void blinkyStateMachineInternal_redOff (const BlinkyStateMachine* ručka) {P1OUT & = ~ BIT0; }

Glavna funkcija sastoji se od dva dijela:

Inicijalizacija i enter funkcija državnog stroja te inicijalizacija mjerača vremena.

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 energije 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 mjerač vremena 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

// Init timer and state machine sc_timer_service_init (& timer_service, timers, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);

dok (1)

{// poziv stroja za stanje 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 za implementaciju vlastitih ideja!

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

Mjesto za ažuriranje možete dobiti ovdje! <

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

Preporučeni: