Taula de continguts:

Màquina d'estats finits en un MSP430: 6 passos
Màquina d'estats finits en un MSP430: 6 passos

Vídeo: Màquina d'estats finits en un MSP430: 6 passos

Vídeo: Màquina d'estats finits en un MSP430: 6 passos
Vídeo: Programateando #2, parte 4. Depurando 2024, Desembre
Anonim
Màquina d'estats finits en un MSP430
Màquina d'estats finits en un MSP430
Màquina d'estats finits en un MSP430
Màquina d'estats finits en un MSP430

Us mostraré com programar un Launchpad MSP430G2 amb màquines d’estats finits (FSM) mitjançant les eines YAKINDU Statechart Tools directament a Texas Instruments Code Composer Studio.

Aquest tutorial conté sis passos:

  1. Instal·lació de YAKINDU Statechart Tools com a complement a Code Composer Studio
  2. Introducció a State Machines a Code Composer Studio
  3. Creeu la màquina Blinky State
  4. Genereu el codi C. State Machine
  5. Trucar a la màquina estatal des del vostre codi
  6. Executeu el projecte.

Aquest projecte es pot utilitzar com a pla per a qualsevol MPS430 o MSP432.

Subministraments

Programari:

  • Eines de gràfics d'estat de YAKINDU
  • Code Composer Studio (CCS) entorn de desenvolupament integrat (IDE)

Maquinari:

Kit de desenvolupament MSP430G2 LaunchPad

Pas 1: Instal·lació de YAKINDU Statechart Tools com a complement a Code Composer Studio

Instal·lació de YAKINDU Statechart Tools com a complement a Code Composer Studio
Instal·lació de YAKINDU Statechart Tools com a complement a Code Composer Studio
Instal·lació de YAKINDU Statechart Tools com a complement a Code Composer Studio
Instal·lació de YAKINDU Statechart Tools com a complement a Code Composer Studio
Instal·lació de YAKINDU Statechart Tools com a complement a Code Composer Studio
Instal·lació de YAKINDU Statechart Tools com a complement a Code Composer Studio

En primer lloc, heu d’instal·lar Code Composer Studio de TI. He provat correctament la configuració amb CCS versió 9.2 i versions anteriors una vegada. Podeu trobar un enllaç de descàrrega aquí:

Descarregueu CCS

Feu clic per baixar-lo i assegureu-vos que heu escollit com a mínim les MCU de potència ultra baixa MSP430 durant la instal·lació. Mentrestant, podeu obtenir el lloc d’actualització de YAKINDU Statechart Tools. Anar a:

Descarregueu les eines de diagrames d’estats de YAKINDU

En aquest lloc, feu clic a Baixa ara i seguiu les instruccions. Com podeu veure a la foto: és gratuït per a usos no comercials. Després del registre, obtindreu una visió general de les opcions de descàrrega. Feu clic a LLOC ESTÀNDARD DE DESCÀRREGA i feu clic a INSTAL·LA DES DEL LLOC ACTUALITZAT. Allà obtindreu un enllaç a Versions estables. Agafeu aquest enllaç i deseu-lo o poseu-lo al porta-retalls.

Instal·lar YAKINDU Statechart Tools a Code Composer Studio pot ser una mica complicat, en funció de la versió de Code Composer Studio que utilitzeu. Mentrestant, potser aquests passos són obsolets, però no dubteu a demanar-me als comentaris si necessiteu ajuda.

Aquests són els meus passos:

Després d’instal·lar CCS amb èxit al vostre sistema, obriu la pestanya Ajuda i feu clic a Instal·la programari nou … En aquest assistent, afegiu el lloc d’actualització següent mitjançant el botó Afegeix …:

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

No afegiu res, només s’ha de resoldre. Ho podeu veure a la imatge.

Després, repetiu els passos i feu clic al botó Afegeix … Inseriu el lloc d’actualització de les eines de diagrama d’estats de YAKINDU, que espero que hàgiu desat. A continuació, marqueu la casella de selecció Gestió de llicències de YAKINDU i feu clic a Següent. Seguiu les instruccions. És possible que el vostre IDE es reiniciï una vegada.

Finalment, podeu instal·lar les eines YAKINDU Statechart. Repetiu els darrers passos, però aquesta vegada trieu YAKINDU Statechart Tools Standard Edition. Un cop més, seguiu les instruccions. Després de reiniciar, heu instal·lat correctament YAKINDU Statechart Tools.

Pas 2: Introducció a les màquines estatals a Code Composer Studio

Introducció a les màquines estatals a Code Composer Studio
Introducció a les màquines estatals a Code Composer Studio
Introducció a les màquines estatals a Code Composer Studio
Introducció a les màquines estatals a Code Composer Studio

Per utilitzar màquines estatals, procediu amb normalitat i creeu un nou projecte CCS. Obriu la pestanya Fitxer, obriu Nou i feu clic a CCS Project. Definiu un nom de projecte, trieu el microcontrolador i creeu un projecte buit que contingui un fitxer main.c buit. He utilitzat el MSP430G2553.

Ara podeu començar a treballar amb màquines estatals.

Feu clic amb el botó dret del ratolí sobre el projecte, obriu Nou i trieu Model d'estadístiques. S'obrirà un assistent en el qual podeu seleccionar el vostre projecte i anomenar-ne l'estadística. Per exemple, anomeneu-lo blinkyStateMachine.sct.

El model Statechart apareixerà a la carpeta del projecte després de fer clic a Finalitza. Feu clic a Sí si se us demana que canvieu la perspectiva.

Pas 3: creeu la màquina Blinky State

Creeu la màquina Blinky State
Creeu la màquina Blinky State

Ara podeu començar a crear l'estadística.

A la part esquerra trobareu l’anomenada secció de definició. Allà podeu afegir elements textuals al model, per exemple, operacions, que es poden anomenar a la màquina d'estats.

Suprimiu-ne tot i afegiu aquestes tres definicions d'operacions:

intern:

operació init () operació redOn () operació redOff ()

Després, canvieu al model de diagrama d'estats i afegiu tres estats:

  • Inicialització
  • LED vermell encès
  • LED vermell apagat

Connecteu els estats tal com es mostra a la imatge i afegiu les transicions i les accions d'entrada. Podeu trobar-los de nou a la imatge inclosa.

Pas 4: Genereu el codi C de la màquina estatal

Genereu el codi C de la màquina estatal
Genereu el codi C de la màquina estatal

Ara és hora de generar el C-Code. Per fer-ho, s’ha d’afegir un model de generador. Feu clic amb el botó dret al projecte una vegada més i obriu Nou i feu clic a Model de generador de codi. Trieu un nom per al fitxer sgen. És una bona pràctica mantenir-se amb el nom de la màquina estatal. Anomeneu-lo blinkyStateMachine.sgen i feu clic a Següent. Trieu la màquina d’estats que vulgueu fent clic a la casella de selecció. Assegureu-vos que heu escollit el generador de codi C de YAKINDU SCT (tal com volem generar C-Code) i feu clic a Finalitza.

Normalment, el codi C es generarà automàticament, però si no, podeu fer clic amb el botó dret del ratolí al fitxer sgen i fer clic a Generar artefactes de codi per fer-ho. Les carpetes src i src-gen haurien d'aparèixer al vostre projecte. Inclouen el C-Code generat, que s'actualitzarà automàticament quan editeu i deseu l'estadística.

Com que aquest estadístic utilitza esdeveniments basats en el temps, cal implementar un servei de temporitzador. Per preparar-ho, necessiteu aquests dos fitxers: sc_timer_service.c i sc_timer_service.h Podeu obtenir-los de GitHub o descarregar-los aquí. Els heu d'afegir a la carpeta src.

Pas 5: trucar a la màquina estatal des del vostre codi

Finalment, la màquina d’estats es pot utilitzar a la vostra funció principal.

En primer lloc, heu d’incloure la màquina d’estat i el servei de temporitzador. A continuació, cal declarar i definir la màquina d'estats, el servei de temporitzador i les funcions necessàries per al servei de temporitzador. A més, s'han d'implementar les operacions definides que tornen a encendre i apagar el led vermell.

#incloure

#include "src-gen / BlinkyStateMachine.h" #include "src / sc_timer_service.h" BlinkyStateMachine blinky; #define MAX_TIMERS 4 temporitzadors estàtics sc_timer_t [MAX_TIMERS]; static sc_timer_service_t timer_service; //! implementació de devolució de trucada per a la configuració d'esdeveniments de temps 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); } //! implementació de devolució de trucada per cancel·lar esdeveniments temporals. extern void blinkyStateMachine_unsetTimer (identificador BlinkyStateMachine *, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! definir operacions 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 (maneta const BlinkyStateMachine *) {P1OUT & = ~ BIT0; }

La funció principal conté dues parts:

La inicialització i la funció d'entrada de la màquina d'estats i la inicialització del temporitzador.

La segona part és un bucle sense fi: el bucle while (1). Dins d’aquest bucle, s’anomena la funció de cicle d’execució de la màquina d’estats. Posteriorment, el MSP430 s’establirà en el mode de baixa energia 0 i es configurarà el bit General Interrupt Enable Enable. Ara el microcontrolador està dormint i espera una interrupció. Després de la interrupció del WDT, el temporitzador continuarà. Això significa que cada temporitzador s'actualitza i el temps transcorregut s'incrementa en 32, el temps en mil·lisegons, que es produeix després de cada interrupció del WDT.

void main (buit) {WDTCTL = WDTPW | WDTHOLD; // Atura el temporitzador del gos de vigilància

// Temporitzador d'inici i màquina d'estats sc_timer_service_init (& timer_service, temporitzadors, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);

mentre que (1)

{// trucar a la màquina d'estats cada 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); }

Pas 6: executeu el projecte

Ja està: ara podeu crear i penjar el programa al vostre MSP430.

Amb sort, aquest tutorial us ha ajudat a crear amb èxit un projecte per al vostre MSP430. Ara és hora d’implementar les vostres pròpies idees.

Per a la generació de codi, es requereix YAKINDU Statechart Tools com a complement al vostre Code Composer Studio.

Podeu obtenir el lloc d'actualització aquí. <

Comença amb la versió de prova de 30 dies. Després, podeu obtenir una llicència gratuïta per a usos no comercials.

Recomanat: