INHOUDSOPGAWE:

Finite State Machine op 'n MSP430: 6 stappe
Finite State Machine op 'n MSP430: 6 stappe

Video: Finite State Machine op 'n MSP430: 6 stappe

Video: Finite State Machine op 'n MSP430: 6 stappe
Video: flip flop क्या होता हैं। drishti ias interview।#motivation #shorts #ias 2024, Julie
Anonim
Finite State Machine op 'n MSP430
Finite State Machine op 'n MSP430
Finite State Machine op 'n MSP430
Finite State Machine op 'n MSP430

Ek gaan u wys hoe u 'n MSP430G2 Launchpad met Finite State Machines (FSM) met YAKINDU Statechart Tools direk in Texas Instruments Code Composer Studio kan programmeer.

Hierdie tutoriaal bevat ses stappe:

  1. Installeer YAKINDU Statechart Tools as 'n inprop vir Code Composer Studio
  2. Begin met State Machines in Code Composer Studio
  3. Skep die Blinky State Machine
  4. Genereer die State Machine C -kode
  5. Bel die staatsmasjien uit u kode
  6. Begin die projek!

Hierdie projek kan gebruik word as 'n bloudruk vir enige MPS430 of MSP432!

Voorrade

Sagteware:

  • YAKINDU Statechart Tools
  • Code Composer Studio (CCS) Integrated Development Environment (IDE)

Hardeware:

MSP430G2 LaunchPad -ontwikkelingsstel

Stap 1: Installeer YAKINDU Statechart Tools as 'n inprop vir Code Composer Studio

Die installering van YAKINDU Statechart Tools as 'n inprop na Code Composer Studio
Die installering van YAKINDU Statechart Tools as 'n inprop na Code Composer Studio
Die installering van YAKINDU Statechart Tools as 'n inprop vir Code Composer Studio
Die installering van YAKINDU Statechart Tools as 'n inprop vir Code Composer Studio
Die installering van YAKINDU Statechart Tools as 'n inprop na Code Composer Studio
Die installering van YAKINDU Statechart Tools as 'n inprop na Code Composer Studio

Eerstens moet u TI's Code Composer Studio installeer. Ek het die opstelling suksesvol getoets met CCS weergawe 9.2 en ouer. U kan 'n aflaai skakel hier vind:

Laai CCS af

Klik om af te laai en maak seker dat u ten minste die MSP430 ultra-lae-krag MCU's gekies het tydens die installering. Intussen kan u die opdateringswebwerf vir YAKINDU Statechart Tools gryp. Gaan na:

Laai YAKINDU Statechart Tools af

Klik op hierdie webwerf op Laai nou af en volg die instruksies. Soos u op die foto kan sien: dit is gratis vir nie-kommersiële gebruik. Na die registrasie kry u 'n oorsig van die aflaai -opsies. Klik op STANDAARD DOWNLOAD SITE en klik op INSTALLERING VAN UPDATE SITE. Daar kry u 'n skakel onder Stabiele vrystellings. Gryp hierdie skakel en stoor dit of plaas dit in u knipbord.

Dit kan 'n bietjie lastig wees om YAKINDU Statechart Tools in Code Composer Studio te installeer, afhangende van die weergawe van Code Composer Studio wat u gebruik. Miskien is hierdie stappe intussen verouderd - maar moenie huiwer om my in die kommentaar te vra as u hulp nodig het nie.

Dit is my stappe:

Nadat u CCS suksesvol op u stelsel geïnstalleer het, maak die Help -oortjie oop en klik op Installeer nuwe sagteware … Voeg in hierdie wizard die volgende opdateringswebwerf by via die Add … -knoppie:

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

Moenie iets byvoeg nie, dit moet net opgelos word. U kan dit op die prentjie sien.

Herhaal daarna die stappe en klik op die knoppie Voeg by … Voeg die opdateringswebwerf YAKINDU Statechart Tools in wat u hopelik gestoor het. Merk dan die boks YAKINDU License Management en klik op volgende. Volg die instruksies. U IDE kan een keer herlaai.

Uiteindelik kan u YAKINDU Statechart -gereedskap installeer. Herhaal die laaste stappe, maar kies hierdie keer YAKINDU Statechart Tools Standard Edition. Volg weer die instruksies. Nadat u weer begin het, het u YAKINDU Statechart Tools suksesvol geïnstalleer.

Stap 2: Begin met staatsmasjiene in Code Composer Studio

Aan die gang met staatsmasjiene in Code Composer Studio
Aan die gang met staatsmasjiene in Code Composer Studio
Aan die gang met staatsmasjiene in Code Composer Studio
Aan die gang met staatsmasjiene in Code Composer Studio

Gaan soos normaal voort om 'n staatsmasjien te gebruik en skep 'n nuwe CCS -projek. Maak die oortjie File oop, maak New en klik op CCS Project. Definieer 'n projeknaam, kies u mikrobeheerder en skep 'n leë projek wat 'n leë main.c -lêer bevat. Ek het die MSP430G2553 gebruik.

Nou kan u met staatsmasjiene begin werk!

Klik met die rechtermuisknop op die projek, maak Nuwe oop en kies Statechart Model. 'N Wizard word oopgemaak waarin u u projek kan kies en u stategrafiek kan noem. Noem dit byvoorbeeld blinkyStateMachine.sct.

Die Statechart -model verskyn in die projektmap nadat u op Voltooi geklik het. Klik op Ja as u gevra word om die perspektief te verander.

Stap 3: Skep die Blinky State Machine

Skep die Blinky State Machine
Skep die Blinky State Machine

Nou kan u begin met die skep van die stategrafiek!

Aan die linkerkant vind u die sogenaamde definisie-afdeling. Daar kan u tekstuele elemente by die model voeg, byvoorbeeld bewerkings wat in die staatsmasjien genoem kan word.

Verwyder alles daaruit en voeg eenvoudig hierdie drie operasie -definisies by:

intern:

operasie init () operasie redOn () operasie redOff ()

Skakel daarna oor na die statechart -model en voeg drie toestande by:

  • Inisialisering
  • rooi LED aan
  • rooi LED af

Koppel die state soos op die foto, en voeg die oorgange en toegangsaksies by. U kan dit weer op die prentjie vind.

Stap 4: Genereer die State Machine C -kode

Genereer die State Machine C -kode
Genereer die State Machine C -kode

Nou is dit tyd om die C-kode te genereer. Hiervoor moet 'n kragopwekkermodel bygevoeg word. Klik weer met die rechtermuisknop op die projek en maak New oop, en klik op Code Generator Model. Kies 'n naam vir die sgen-lêer. Dit is 'n goeie praktyk om by die naam van die staatsmasjien te bly. Noem dit blinkyStateMachine.sgen en klik op Volgende. Kies die gewenste staatsmasjien deur op die kassie te klik. Maak seker dat u die YAKINDU SCT C-kodeopwekker gekies het (soos ons C-kode wil genereer) en klik op Voltooi.

Gewoonlik word die C-kode outomaties gegenereer, maar indien nie, kan u met die rechtermuisknop op die sgen-lêer klik en op Generate Code Artifacts klik om dit te doen. Die vouers src en src-gen moet in u projek verskyn. Dit bevat die gegenereerde C-kode, wat outomaties bygewerk sal word wanneer u die statediagram wysig en stoor.

Omdat hierdie staatskaart tydgebaseerde gebeure gebruik, moet 'n tyddiens geïmplementeer word. Om dit voor te berei, benodig u hierdie twee lêers: sc_timer_service.c en sc_timer_service.h U kan dit van GitHub aflaai of hier aflaai. U moet dit by die src -lêergids voeg.

Stap 5: Bel die staatsmasjien uit u kode

Uiteindelik kan die staatsmasjien in u hooffunksie gebruik word!

Eerstens moet u die staatsmasjien en die timer -diens insluit. Dan moet die staatsmasjien, die tyddiens en die vereiste funksies vir die tyddiens verklaar en gedefinieer word. Boonop moet die gedefinieerde bewerkings wat die rooi led weer aan- en uitskakel geïmplementeer word.

#insluit

#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #define MAX_TIMERS 4 statiese sc_timer_t timers [MAX_TIMERS]; statiese sc_timer_service_t timer_service; //! terugbel -implementering vir die opstel van tydgebeurtenisse extern void blinkyStateMachine_setTimer (BlinkyStateMachine* handvatsel, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) {sc_timer_start (& timer_service, handle, evid, time_ms, periodiek); } //! terugbel -implementering om tydgebeurtenisse te kanselleer. eksterne leemte blinkyStateMachine_unsetTimer (BlinkyStateMachine* handvatsel, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! definieer bedrywighede extern void blinkyStateMachineInternal_init (const BlinkyStateMachine* handvatsel) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } eksterne leemte blinkyStateMachineInternal_redOn (const BlinkyStateMachine* handvatsel) {P1OUT | = BIT0; } eksterne leemte blinkyStateMachineInternal_redOff (const BlinkyStateMachine* handvatsel) {P1OUT & = ~ BIT0; }

Die hooffunksie bevat twee dele:

Die inisialisering en die enter -funksie van die staatsmasjien en die inisialisering van die timer.

Die tweede deel is 'n eindelose lus - die while (1) lus. Binne hierdie lus word die lopingsiklusfunksie van die staatsmasjien genoem. Daarna word die MSP430 in die Lae -kragmodus 0 ingestel en die bit vir algemene onderbreking word ingestel. Nou slaap die mikrobeheerder en wag vir 'n onderbreking. Na die onderbreking van die WDT, gaan die timer voort. Dit beteken dat elke timer opgedateer word en die verloop van tyd met 32 toegeneem word - die tyd in millisekondes, wat voortgaan na elke onderbreking van die WDT.

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

// Init timer en state machine sc_timer_service_init (& timer_service, timers, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);

terwyl (1)

{// bel staatsmasjien elke 32 ms blinkyStateMachine_runCycle (& blinky); _bis_SR_register (LPM0_bits + GIE); sc_timer_service_proceed (& timer_service, 32); }}

// WDT ISR

#pragma vektor = WDT_VECTOR _onderbreek leë waghond_timer (leeg) {_bic_SR_register_on_exit (LPM0_bits + GIE); }

Stap 6: Begin die projek

Dit is dit - nou kan u die program bou en oplaai na u MSP430!

Hopelik het hierdie tutoriaal u gehelp om 'n projek vir u MSP430 suksesvol te skep. Nou is dit tyd om u eie idees te implementeer!

Om kode te genereer, is YAKINDU Statechart Tools nodig as 'n inprop in u Code Composer Studio.

U kan die opdateringswebwerf hier kry! <

Dit begin met 'n proefweergawe van 30 dae. Daarna kan u 'n gratis lisensie kry vir nie-kommersiële gebruik!

Aanbeveel: