Sadržaj:
- Pribor
- Korak 1: Instaliranje YAKINDU alata za dijagram stanja kao dodatka za Code Composer Studio
- Korak 2: Početak rada s državnim strojevima u Code Composer Studiu
- Korak 3: Stvorite Blinky State Machine
- Korak 4: Generirajte C kod državne mašine
- Korak 5: Pozivanje državnog stroja iz vašeg koda
- Korak 6: Pokrenite projekt
Video: Stroj konačnih stanja na MSP430: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
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:
- Instaliranje YAKINDU alata za grafikone stanja kao dodatka za Code Composer Studio
- Početak rada s državnim strojevima u Code Composer Studiu
- Napravite Blinky State Machine
- Generirajte C kod stroja State Machine
- Pozivanje State Machine -a iz vašeg koda
- 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
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
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
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
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:
Rube Goldberg stroj 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 uloviti sapunicu
Kritični stroj za podučavanje koraka pranja ruku: 5 koraka
Kritični stroj za podučavanje koraka pranja ruku: Ovo je stroj koji podsjeća korisnika na korake kada treba oprati ruke. Svrha ovog stroja je pomoći ljudima da razumiju kako pravilno oprati ruke na učinkovit način. Tijekom razdoblja prevencije epidemije ili pandemije
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 načina rada, mjerača vremena i prekida male snage. Izlaz se prikazuje putem 7 segmenata
MSP430 Analizator audio spektra na matičnoj ploči: 6 koraka
MSP430 Breadboard Audio Spectrum Analyzer: Ovaj projekt temelji se na mikrofonu i zahtijeva minimalne vanjske komponente. Koriste se 2 x kovanice LR44 tako da cijela struktura može funkcionirati u granicama 170 malih mini ploča s povezivanjem. 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, činilo se 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 zapravo jednostavno … uglavnom.Ez430 je izvrstan ako želite