Indholdsfortegnelse:

Finite State Machine på en MSP430: 6 trin
Finite State Machine på en MSP430: 6 trin

Video: Finite State Machine på en MSP430: 6 trin

Video: Finite State Machine på en MSP430: 6 trin
Video: FSM Finite State Machine | Embedded Software | Embedded System and RTOS 2024, Juli
Anonim
Finite State Machine på en MSP430
Finite State Machine på en MSP430
Finite State Machine på en MSP430
Finite State Machine på en MSP430

Jeg vil vise dig, hvordan du programmerer en MSP430G2 Launchpad med Finite State Machines (FSM) ved hjælp af YAKINDU Statechart Tools direkte i Texas Instruments Code Composer Studio.

Denne vejledning indeholder seks trin:

  1. Installation af YAKINDU Statechart Tools som et plugin til Code Composer Studio
  2. Kom godt i gang med State Machines i Code Composer Studio
  3. Opret Blinky State Machine
  4. Generer State Machine C -koden
  5. Ringer til State Machine fra din kode
  6. Kør projektet!

Dette projekt kan bruges som en blueprint til enhver MPS430 eller MSP432!

Forbrugsvarer

Software:

  • YAKINDU Statechart -værktøjer
  • Code Composer Studio (CCS) Integrated Development Environment (IDE)

Hardware:

MSP430G2 LaunchPad Development kit

Trin 1: Installation af YAKINDU Statechart -værktøjer som et plugin til Code Composer Studio

Installation af YAKINDU Statechart -værktøjer som et plugin til Code Composer Studio
Installation af YAKINDU Statechart -værktøjer som et plugin til Code Composer Studio
Installation af YAKINDU Statechart -værktøjer som et plugin til Code Composer Studio
Installation af YAKINDU Statechart -værktøjer som et plugin til Code Composer Studio
Installation af YAKINDU Statechart -værktøjer som et plugin til Code Composer Studio
Installation af YAKINDU Statechart -værktøjer som et plugin til Code Composer Studio

Først skal du installere TI's Code Composer Studio. Jeg har med succes testet opsætningen med CCS version 9.2 og ældre en gang. Du kan finde et downloadlink her:

Download CCS

Klik for at downloade, og sørg for, at du i det mindste har valgt MSP430 ultra-low-power MCU'er under installationen. I mellemtiden kan du få fat i opdateringsstedet til YAKINDU Statechart Tools. Gå til:

Download YAKINDU Statechart -værktøjer

På dette websted skal du klikke på Download nu og følge instruktionerne. Som du kan se på billedet: Det er gratis til ikke-kommerciel brug. Efter registreringen får du et overblik over downloadmulighederne. Klik på STANDARD DOWNLOAD SITE og klik på INSTALL FRA UPDATE SITE. Der får du et link under stabile udgivelser. Tag dette link, og gem det eller læg det i dit udklipsholder.

Installation af YAKINDU Statechart Tools i Code Composer Studio kan være lidt vanskelig, afhængigt af hvilken version af Code Composer Studio du bruger. Måske er disse trin forældede i mellemtiden - dog: tøv ikke med at spørge mig i kommentarerne, hvis du har brug for hjælp.

Dette er mine trin:

Efter at have installeret CCS på dit system, skal du åbne fanen Hjælp og klikke på Installer ny software … I denne guide tilføjes følgende opdateringswebsted via knappen Tilføj …:

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

Tilføj ikke noget, det skal bare løses. Du kan se det på billedet.

Efter dette skal du gentage trinene og klikke på knappen Tilføj …. Indsæt opdateringswebstedet YAKINDU Statechart Tools, som du forhåbentlig har gemt. Marker derefter afkrydsningsfeltet YAKINDU License Management og klik på næste. Følg instrukserne. Din IDE genstarter muligvis én gang.

Endelig kan du installere YAKINDU Statechart -værktøjer. Gentag de sidste trin, men denne gang skal du vælge YAKINDU Statechart Tools Standard Edition. Følg igen instruktionerne. Efter genstart har du installeret YAKINDU Statechart Tools.

Trin 2: Kom godt i gang med statsmaskiner i Code Composer Studio

Kom godt i gang med statsmaskiner i Code Composer Studio
Kom godt i gang med statsmaskiner i Code Composer Studio
Kom godt i gang med statsmaskiner i Code Composer Studio
Kom godt i gang med statsmaskiner i Code Composer Studio

For at bruge statsmaskiner skal du fortsætte som normalt og oprette et nyt CCS -projekt. Åbn fanen Filer, åbn Ny, og klik på CCS Project. Definer et projektnavn, vælg din mikrokontroller og opret et tomt projekt, som indeholder en tom main.c -fil. Jeg brugte MSP430G2553.

Nu kan du begynde at arbejde med statsmaskiner!

Højreklik på projektet, åbn Ny og vælg Statechart Model. Der åbnes en Wizard, hvor du kan vælge dit projekt og navngive din statartabel. For eksempel kalder det blinkyStateMachine.sct.

Statechart -modellen vises i projektmappen efter at have klikket på Afslut. Klik på Ja, hvis du bliver bedt om at ændre perspektivet.

Trin 3: Opret Blinky State Machine

Opret Blinky State Machine
Opret Blinky State Machine

Nu kan du begynde at oprette statistabellen!

I venstre side finder du det såkaldte definitionafsnit. Der kan du tilføje tekstelementer til modellen, for eksempel operationer, som kan kaldes i statsmaskinen.

Slet alt fra det, og tilføj blot disse tre operationsdefinitioner:

indre:

operation init () operation redOn () operation redOff ()

Skift derefter til statechart -modellen, og tilføj tre tilstande:

  • Initialisering
  • rød LED tændt
  • rød LED slukket

Forbind staterne som vist på billedet, og tilføj overgange og indtastningshandlinger. Du kan finde dem på det medfølgende billede igen.

Trin 4: Generer State Machine C -koden

Generer State Machine C -koden
Generer State Machine C -koden

Nu er det tid til at generere C-koden. For at gøre dette skal der tilføjes en generatormodel. Højreklik på projektet endnu en gang, og åbn Ny, og klik på Code Generator Model. Vælg et navn til sgen-filen. Det er en god praksis at blive ved med navnet på statsmaskinen. Kald det blinkyStateMachine.sgen og klik på Næste. Vælg den ønskede statsmaskine ved at klikke på afkrydsningsfeltet. Sørg for, at du har valgt YAKINDU SCT C-kodegeneratoren (som vi ønsker at generere C-kode), og klik på Afslut.

Normalt genereres C-koden automatisk, men hvis ikke, kan du højreklikke på sgen -filen og klikke på Generer kodegenstande for at gøre det. Mapperne src og src-gen skal vises i dit projekt. De indeholder den genererede C-kode, som automatisk opdateres, når du redigerer og gemmer statediagrammet.

Fordi denne statistik bruger tidsbaserede hændelser, skal en timer-service implementeres. For at forberede dette skal du bruge disse to filer: sc_timer_service.c og sc_timer_service.h Du kan få dem fra GitHub eller downloade dem her. Du skal tilføje dem til src -mappen.

Trin 5: Opkald til statsmaskinen fra din kode

Endelig kan statsmaskinen bruges i din hovedfunktion!

Først skal du inkludere statsmaskinen og timertjenesten. Derefter skal statsmaskinen, timertjenesten og de nødvendige funktioner til timertjenesten deklareres og defineres. Derudover skal de definerede operationer, der tænder og slukker den røde lysdiode igen, implementeres.

#omfatte

#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinkende; #define MAX_TIMERS 4 statiske sc_timer_t timere [MAX_TIMERS]; statisk sc_timer_service_t timer_service; //! tilbagekaldsimplementering til opsætning af tidsbegivenheder extern void blinkyStateMachine_setTimer (BlinkyStateMachine* håndtag, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) {sc_timer_start (& timer_service, handle, evid, time_ms, periodisk); } //! tilbagekaldsimplementering til aflysning af tidsbegivenheder. eksternt tomrum blinkyStateMachine_unsetTimer (BlinkyStateMachine* håndtag, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! definere operationer extern void blinkyStateMachineInternal_init (const BlinkyStateMachine* håndtag) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } eksternt tomrum blinkyStateMachineInternal_redOn (const BlinkyStateMachine* håndtag) {P1OUT | = BIT0; } eksternt tomrum blinkyStateMachineInternal_redOff (const BlinkyStateMachine* håndtag) {P1OUT & = ~ BIT0; }

Hovedfunktionen indeholder to dele:

Tilstandsmaskinens initialisering og enter -funktion og initialiseringen af timeren.

Den anden del er en endeløs sløjfe - mens (1) loop. Inden for denne loop kaldes tilstandsmaskinens kørecyklusfunktion. Bagefter vil MSP430 blive sat til Low Power Mode 0, og den generelle bit kan aktiveres. Nu sover mikrokontrolleren og venter på en afbrydelse. Efter afbrydelse af WDT fortsætter timeren. Det betyder, at hver timer opdateres, og den forløbne tid øges med 32 - tiden i millisekunder, der fortsætter efter hver afbrydelse af WDT.

void main (void) {WDTCTL = WDTPW | WDTHOLD; // Stop vagthundstimeren

// Init timer og tilstandsmaskine sc_timer_service_init (& timer_service, timere, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);

mens (1)

{// call state machine hver 32 ms blinkyStateMachine_runCycle (& blinky); _bis_SR_register (LPM0_bits + GIE); sc_timer_service_proceed (& timer_service, 32); }}

// WDT ISR

#pragma vektor = WDT_VECTOR _interrupt void watchdog_timer (void) {_bic_SR_register_on_exit (LPM0_bits + GIE); }

Trin 6: Kør projektet

Det er det - Nu kan du bygge og uploade programmet til din MSP430!

Forhåbentlig har denne vejledning hjulpet dig med at oprette et projekt til din MSP430. Nu er det tid til at implementere dine egne ideer!

For kodegenerering kræves YAKINDU Statechart Tools som et plugin i dit Code Composer Studio.

Du kan få opdateringsstedet her! <

Det starter med 30 dages prøveversion. Bagefter kan du få en gratis licens til ikke-kommerciel brug!

Anbefalede: