Taula de continguts:
- Subministraments
- Pas 1: Instal·lació de YAKINDU Statechart Tools com a complement a Code Composer Studio
- Pas 2: Introducció a les màquines estatals a Code Composer Studio
- Pas 3: creeu la màquina Blinky State
- Pas 4: Genereu el codi C de la màquina estatal
- Pas 5: trucar a la màquina estatal des del vostre codi
- Pas 6: executeu el projecte
Vídeo: Màquina d'estats finits en un MSP430: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
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:
- Instal·lació de YAKINDU Statechart Tools com a complement a Code Composer Studio
- Introducció a State Machines a Code Composer Studio
- Creeu la màquina Blinky State
- Genereu el codi C. State Machine
- Trucar a la màquina estatal des del vostre codi
- 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
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
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
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
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:
Regions dels Estats Units Makey Makey Joc: 5 passos
Regions dels Estats Units Makey Makey Joc: en aquest instructiu els estudiants construiran un joc per reforçar el seu coneixement de les 5 regions dels Estats Units i el seu coneixement de circuits, mitjançant estratègies de col·laboració grupal. Els estudiants de 5è de primària de Virginia Occidental estudien la regió
Rellotge digital a Arduino amb una màquina d'estats finits: 6 passos
Rellotge digital a Arduino amb una màquina d’estats finits: hey, us mostraré com es pot crear un rellotge digital amb YAKINDU Statechart Tools i funcionar en un Arduino, que utilitza un teclat LCD Shield. el rellotge va ser pres de David Harel. Ha publicat un article sobre
Comptador de segons de MSP430: 10 passos
Comptador de segons MSP430: Benvingut! Comptador de segons: utilitzant CCStudio 8 i MSP430F5529 per al projecte. Llenguatge C per codificar el microcontrolador. Aplicació de modes de baix consum, temporitzadors i interrupcions. La sortida es mostra a través de 7 segments
Projecte de registre d’estats de la porta i la temperatura: 21 passos
Projecte de registre d’estats de la porta i la temperatura: aquest manual d’instruccions us mostrarà com fer un registre de l’estat de la porta i la temperatura per menys de 10,00 $ usant un ESP8266 NodeMCU, un sensor de temperatura i humitat DHT11, un interruptor reed de porta / finestra, una resistència de 10K ohm filferro de connexió. El gen
Analitzador d'espectre d'àudio MSP430 Breadboard: 6 passos
MSP430 Breadboard Audio Spectrum Analyzer: aquest projecte està basat en micròfon i requereix components externs mínims. S’utilitzen 2 cèl·lules de moneda LR44 perquè pugui tenir tota l’estructura treballant als límits d’una mini placa de 170 punts de connexió. ADC10, TimerA interrupt LPM wake-up, TimerA PWM