Galīga stāvokļa mašīna uz MSP430: 6 soļi
Galīga stāvokļa mašīna uz MSP430: 6 soļi
Anonim
Galīga stāvokļa mašīna uz MSP430
Galīga stāvokļa mašīna uz MSP430
Galīga stāvokļa mašīna uz MSP430
Galīga stāvokļa mašīna uz MSP430

Es jums parādīšu, kā programmēt MSP430G2 palaišanas paliktni ar ierobežota stāvokļa mašīnām (FSM), izmantojot YAKINDU Statechart Tools tieši Texas Instruments Code Composer Studio.

Šajā apmācībā ir seši soļi:

  1. YAKINDU Statechart Tools instalēšana kā spraudnis Code Composer Studio
  2. Darba sākšana ar State Machines Code Composer Studio
  3. Izveidojiet Blinky State Machine
  4. Ģenerējiet valsts mašīnas C kodu
  5. Zvanīšana valsts mašīnai no sava koda
  6. Vadīt projektu!

Šo projektu var izmantot kā plānu jebkuram MPS430 vai MSP432!

Piegādes

Programmatūra:

  • YAKINDU stāvokļa diagrammas rīki
  • Code Composer Studio (CCS) integrētā izstrādes vide (IDE)

Aparatūra:

MSP430G2 LaunchPad izstrādes komplekts

1. darbība. YAKINDU Statechart Tools instalēšana kā spraudnis Code Composer Studio

YAKINDU Statechart Tools instalēšana kā spraudnis Code Composer Studio
YAKINDU Statechart Tools instalēšana kā spraudnis Code Composer Studio
YAKINDU Statechart Tools instalēšana kā spraudnis Code Composer Studio
YAKINDU Statechart Tools instalēšana kā spraudnis Code Composer Studio
YAKINDU Statechart Tools instalēšana kā spraudnis Code Composer Studio
YAKINDU Statechart Tools instalēšana kā spraudnis Code Composer Studio

Pirmkārt, jums jāinstalē TI Code Composer Studio. Vienu reizi esmu veiksmīgi pārbaudījis iestatīšanu ar CCS versiju 9.2 un vecāku. Lejupielādes saiti varat atrast šeit:

Lejupielādēt CCS

Noklikšķiniet, lai lejupielādētu, un pārliecinieties, ka instalēšanas laikā esat vismaz izvēlējies MSP430 īpaši mazjaudas MCU. Tikmēr varat izmantot YAKINDU Statechart Tools atjauninājumu vietni. Iet uz:

Lejupielādējiet YAKINDU valsts diagrammas rīkus

Šajā vietnē noklikšķiniet uz Lejupielādēt tūlīt un izpildiet norādījumus. Kā redzat fotoattēlā: tas ir bezmaksas nekomerciālai lietošanai. Pēc reģistrācijas jūs saņemsiet pārskatu par lejupielādes iespējām. Noklikšķiniet uz STANDARTA LEJUPIELĀDES VIETNES un noklikšķiniet uz UZSTĀDĪT NO ATJAUNINĀJUMA VIETNES. Tur jūs atradīsit saiti sadaļā Stabili izdevumi. Paņemiet šo saiti un saglabājiet to vai ievietojiet starpliktuvē.

YAKINDU Statechart Tools instalēšana Code Composer Studio var būt nedaudz sarežģīta, atkarībā no izmantotās Code Composer Studio versijas. Varbūt šīs darbības tikmēr ir novecojušas - tomēr: nevilcinieties jautāt man komentāros, ja jums nepieciešama palīdzība.

Šie ir mani soļi:

Pēc veiksmīgas CCS instalēšanas savā sistēmā atveriet cilni Palīdzība un noklikšķiniet uz Instalēt jaunu programmatūru … Šajā vednī, izmantojot pogu Pievienot…, pievienojiet šo atjaunināšanas vietni:

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

Nepievienojiet neko, tas vienkārši jāatrisina. To var redzēt attēlā.

Pēc tam atkārtojiet šīs darbības un noklikšķiniet uz pogas Pievienot…. Ievietojiet YAKINDU Statechart Tools atjaunināšanas vietni, kuru, cerams, esat saglabājis. Pēc tam atzīmējiet izvēles rūtiņu YAKINDU License Management un noklikšķiniet uz Tālāk. Izpildiet norādījumus. Jūsu IDE var restartēties vienu reizi.

Visbeidzot, jūs varat instalēt YAKINDU Statechart rīkus. Atkārtojiet pēdējās darbības, taču šoreiz izvēlieties YAKINDU Statechart Tools Standard Edition. Vēlreiz izpildiet norādījumus. Pēc restartēšanas esat veiksmīgi instalējis YAKINDU Statechart Tools.

2. darbība. Darba sākšana ar valsts iekārtām Code Composer Studio

Darba sākšana ar valsts iekārtām Code Composer Studio
Darba sākšana ar valsts iekārtām Code Composer Studio
Darba sākšana ar valsts iekārtām Code Composer Studio
Darba sākšana ar valsts iekārtām Code Composer Studio

Lai izmantotu valsts iekārtas, rīkojieties kā parasti un izveidojiet jaunu CCS projektu. Atveriet cilni Fails, atveriet Jauns un noklikšķiniet uz CCS Project. Definējiet projekta nosaukumu, izvēlieties savu mikrokontrolleri un izveidojiet tukšu projektu, kurā ir tukšs main.c fails. Es izmantoju MSP430G2553.

Tagad jūs varat sākt strādāt ar valsts mašīnām!

Ar peles labo pogu noklikšķiniet uz projekta, atveriet Jauns un izvēlieties Statusa diagrammas modelis. Tiks atvērts vednis, kurā varēsit izvēlēties savu projektu un nosaukt savu valsts diagrammu. Piemēram, sauciet to par blinkyStateMachine.sct.

Statechart modelis parādīsies projekta mapē pēc noklikšķināšanas uz Pabeigt. Noklikšķiniet uz Jā, ja tiek prasīts mainīt perspektīvu.

3. darbība: izveidojiet Blinky State Machine

Izveidojiet Blinky State Machine
Izveidojiet Blinky State Machine

Tagad jūs varat sākt veidot valsts diagrammu!

Kreisajā pusē atradīsit tā saucamo definīciju sadaļu. Tur modelim var pievienot teksta elementus, piemēram, operācijas, kuras var izsaukt valsts mašīnā.

Izdzēsiet no tā visu un vienkārši pievienojiet šīs trīs darbības definīcijas:

iekšējais:

operācija init () darbība redOn () darbība redOff ()

Pēc tam pārejiet uz stāvokļa diagrammas modeli un pievienojiet trīs stāvokļus:

  • Inicializācija
  • deg sarkana gaismas diode
  • sarkanā gaismas diode izslēgta

Savienojiet štatus, kā parādīts attēlā, un pievienojiet pārejas un ievades darbības. Tos atkal varat atrast pievienotajā attēlā.

4. darbība: ģenerējiet valsts mašīnas C kodu

Ģenerējiet valsts mašīnas C kodu
Ģenerējiet valsts mašīnas C kodu

Tagad ir pienācis laiks izveidot C kodu. Lai to izdarītu, jāpievieno ģeneratora modelis. Vēlreiz ar peles labo pogu noklikšķiniet uz projekta un atveriet Jauns un noklikšķiniet uz Koda ģeneratora modelis. Izvēlieties sgen faila nosaukumu. Ir laba prakse palikt pie valsts mašīnas nosaukuma. Sauciet to par blinkyStateMachine.sgen un noklikšķiniet uz Tālāk. Izvēlieties vēlamo valsts iekārtu, noklikšķinot uz izvēles rūtiņas. Pārliecinieties, ka esat izvēlējies YAKINDU SCT C kodu ģeneratoru (kā mēs vēlamies ģenerēt C kodu) un noklikšķiniet uz Pabeigt.

Parasti C kods tiks ģenerēts automātiski, bet, ja nē, varat ar peles labo pogu noklikšķināt uz faila sgen un noklikšķināt uz Ģenerēt koda artefaktus. Mapēm src un src-gen vajadzētu parādīties jūsu projektā. Tajos ietilpst ģenerētais C kods, kas tiks automātiski atjaunināts, rediģējot un saglabājot stāvokļa diagrammu.

Tā kā šī stāvokļa diagramma izmanto uz laiku balstītus notikumus, ir jāīsteno taimera pakalpojums. Lai to sagatavotu, jums ir nepieciešami šie divi faili: sc_timer_service.c un sc_timer_service.h Jūs varat tos iegūt no GitHub vai lejupielādēt šeit. Jums tie jāpievieno mapei src.

5. darbība. Valsts koda izsaukšana no sava koda

Visbeidzot, valsts mašīnu var izmantot jūsu galvenajā funkcijā!

Pirmkārt, jums ir jāiekļauj valsts mašīna un taimera pakalpojums. Pēc tam ir jādeklarē un jādefinē stāvokļa mašīna, taimera pakalpojums un taimera pakalpojumam nepieciešamās funkcijas. Turklāt ir jāīsteno noteiktās darbības, kas ieslēdz un izslēdz sarkano gaismas diodi.

#iekļaut

#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine mirgo; #define MAX_TIMERS 4 statiskie sc_timer_t taimeri [MAX_TIMERS]; statisks sc_timer_service_t timer_service; //! atzvanīšanas ieviešana laika notikumu iestatīšanai extern void blinkyStateMachine_setTimer (BlinkyStateMachine* rokturis, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) {sc_timer_start (& timer_service, rokturis, evid, time_ms, periodic); } //! atzvanīšanas ieviešana laika notikumu atcelšanai. extern void blinkyStateMachine_unsetTimer (BlinkyStateMachine* rokturis, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! operāciju definēšana extern void blinkyStateMachineInternal_init (const BlinkyStateMachine* rokturis) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } extern void blinkyStateMachineInternal_redOn (const BlinkyStateMachine* rokturis) {P1OUT | = BIT0; } extern void blinkyStateMachineInternal_redOff (const BlinkyStateMachine* rokturis) {P1OUT & = ~ BIT0; }

Galvenā funkcija sastāv no divām daļām:

Stāvokļa inicializācija un ievadīšanas funkcija un taimera inicializēšana.

Otrā daļa ir bezgalīga cilpa - cikla (1) cilpa. Šajā cilpā tiek izsaukta stāvokļa mašīnas darbības cikla funkcija. Pēc tam MSP430 tiks iestatīts mazjaudas režīmā 0 un tiks iestatīts vispārējās pārtraukšanas iespējošanas bits. Tagad mikrokontrolleris guļ un gaida pārtraukumu. Pēc WDT pārtraukuma taimeris turpinās. Tas nozīmē, ka katrs taimeris tiek atjaunināts un pagājis laiks tiek palielināts par 32 - laiks milisekundēs, kas tiek turpināts pēc katra WDT pārtraukuma.

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

// Sākuma taimeris un stāvokļa mašīna sc_timer_service_init (& timer_service, taimeri, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);

kamēr (1)

{// izsaukt valsts mašīnu ik pēc 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); }

6. darbība: palaidiet projektu

Tieši tā - tagad jūs varat izveidot un augšupielādēt programmu savā MSP430!

Cerams, ka šī apmācība palīdzēja jums veiksmīgi izveidot projektu jūsu MSP430. Tagad ir pienācis laiks īstenot savas idejas!

Lai ģenerētu kodu, YAKINDU Statechart Tools ir nepieciešami kā spraudnis jūsu Code Composer Studio.

Atjaunināšanas vietni varat iegūt šeit! <

Tas sākas ar 30 dienu izmēģinājuma versiju. Pēc tam jūs varat saņemt bezmaksas licenci nekomerciālai lietošanai!

Ieteicams: