Sadržaj:
- Supplies
- Korak 1: Instaliranje YAKINDU alata dijagrama stanja kao dodatka za Code Composer Studio
- Korak 2: Početak rada sa državnim mašinama u Code Composer studiju
- Korak 3: Kreirajte Blinky State Machine
- Korak 4: Generirajte C kod državne mašine
- Korak 5: Pozivanje državne mašine iz vašeg koda
- Korak 6: Pokrenite projekt
Video: Mašina konačnih stanja na MSP430: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
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:
- Instaliranje YAKINDU alata za dijagrame stanja kao dodatka za Code Composer Studio
- Početak rada sa državnim mašinama u Code Composer Studiu
- Kreirajte Blinky State Machine
- Generirajte State Machine C kod
- Pozivanje State Machine -a iz vašeg koda
- 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
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
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
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
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:
Rube Goldberg mašina u 11 koraka: 8 koraka
11 Step Rube Goldberg Machine: Ovaj projekt je 11 Step Rube Goldberg Machine, koji je dizajniran da na jednostavan način formira jednostavan zadatak. Zadatak ovog projekta je uhvatiti sapunicu
Računovodstveni bilans stanja: 21 korak
Računovodstvena bilanca probnog perioda: Kako stvoriti računovodstvenu probnu bilancu Jack Jack L. Dolje navedene upute namijenjene su početnicima koji su tek počeli računovodstvo kako bi im podaci bili čisti i organizirani. U ovom vodiču pokazat ću vam kako stvoriti Tri
Brojač sekundi MSP430: 10 koraka
Brojač sekundi MSP430: Dobro došli! Izrada brojača sekundi: Korištenje CCStudio 8 i MSP430F5529 za projekt. C jezik za kodiranje mikro kontrolera. Primjena režima male snage, mjerača vremena i prekida. Izlaz se prikazuje putem 7 segmenata
MSP430 Analizator audio spektra za matičnu ploču: 6 koraka
MSP430 Breadboard Audio Spectrum Analyzer: Ovaj projekt je baziran na mikrofonu i zahtijeva minimalne vanjske komponente. Koriste se 2 x LR44 kovanice tako da cijela struktura može raditi u granicama 170 malih mini ploča s kravatom. ADC10, TimerA prekid LPM buđenja, TimerA PWM
Programiranje MSP430 DIP pomoću Ez430: 4 koraka
Programiranje DSP -a MSP430 pomoću Ez430: Kad sam pronašao TI -jev ez430 USB programator, izgledalo je da je to jedna od lakših metoda za pokretanje i rad s MCU -om. Kako sam mogao pogriješiti, ima ez u imenu! Ispostavilo se da je to zapravo jednostavno … uglavnom.Ez430 je odličan ako želite