Përmbajtje:

Makina me gjendje të fundme në një MSP430: 6 hapa
Makina me gjendje të fundme në një MSP430: 6 hapa

Video: Makina me gjendje të fundme në një MSP430: 6 hapa

Video: Makina me gjendje të fundme në një MSP430: 6 hapa
Video: Si te marrim masat per te qepur nje fund? How to take measurements Part 2 2024, Nëntor
Anonim
Makinë me gjendje të fundme në një MSP430
Makinë me gjendje të fundme në një MSP430
Makinë me gjendje të fundme në një MSP430
Makinë me gjendje të fundme në një MSP430

Unë do t'ju tregoj se si të programoni një MSP430G2 Launchpad me Makinat e Fundit të Gjendjes (FSM) duke përdorur Mjetet YAKINDU Statechart direkt në Texas Instruments Code Composer Studio.

Ky tutorial përmban gjashtë hapa:

  1. Instalimi i YAKINDU Toolchart Tools si një shtojcë në Code Composer Studio
  2. Fillimi me State Machines në Code Composer Studio
  3. Krijo Makinën Blinky State
  4. Gjeneroni kodin Shtetëror të Makinës C
  5. Thirrja e Makinës Shtetërore nga kodi juaj
  6. Drejtoni projektin!

Ky projekt mund të përdoret si një plan për çdo MPS430 ose MSP432!

Furnizimet

Softuer:

  • Mjetet e hartës shtetërore YAKINDU
  • Code Composer Studio (CCS) Mjedisi i Zhvillimit të Integruar (IDE)

Hardware:

Kompleti i zhvillimit MSP430G2 LaunchPad

Hapi 1: Instalimi i mjeteve të YAKINDU Statechart si një shtojcë në Studio Composer Studio

Instalimi i mjeteve të YAKINDU Statechart si një shtojcë në Studio Composer Studio
Instalimi i mjeteve të YAKINDU Statechart si një shtojcë në Studio Composer Studio
Instalimi i mjeteve të YAKINDU Statechart si një shtojcë në Studio Composer Studio
Instalimi i mjeteve të YAKINDU Statechart si një shtojcë në Studio Composer Studio
Instalimi i mjeteve të YAKINDU Statechart si një shtojcë në Studio Composer Studio
Instalimi i mjeteve të YAKINDU Statechart si një shtojcë në Studio Composer Studio

Së pari, duhet të instaloni Studio Composer Studio të TI. Kam testuar me sukses konfigurimin me versionin CCS 9.2 dhe më të vjetër një herë. Këtu mund të gjeni lidhjen e shkarkimit:

Shkarkoni CCS

Klikoni për shkarkim dhe sigurohuni që të paktën keni zgjedhur MCU-të MSP430 me fuqi shumë të ulët gjatë instalimit. Ndërkohë, ju mund të kapni sitin e përditësimit për Mjetet YAKINDU Statechart. Shko tek:

Shkarkoni Mjetet YAKINDU të Tabelave Shtetërore

Në këtë faqe, klikoni në Shkarkoni Tani dhe ndiqni udhëzimet. Siç mund ta shihni në foto: freeshtë falas për përdorim jo-komercial. Pas regjistrimit, do të merrni një përmbledhje të opsioneve të shkarkimit. Klikoni në STANDARD DOWNLOAD SITE dhe klikoni INSTALL NGU UPDATE SITE. Aty do të merrni një lidhje nën Njoftimet e Qëndrueshme. Merrni këtë lidhje dhe ruajeni ose vendoseni në kujtesën tuaj.

Instalimi i YAKINDU Toolchart Tools në Code Composer Studio mund të jetë pak i ndërlikuar, në varësi të versionit të Code Composer Studio që po përdorni. Ndoshta këto hapa janë ndërkohë të vjetëruara - megjithatë: mos hezitoni të më pyesni në komente nëse keni nevojë për ndonjë ndihmë.

Këto janë hapat e mi:

Pasi të keni instaluar me sukses CCS në sistemin tuaj, hapni skedën Ndihmë dhe klikoni në Instaloni softuer të ri … Në këtë magjistar, shtoni sitin e mëposhtëm të përditësimit përmes butonit Shto …:

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

Mos shtoni asgjë, thjesht duhet të zgjidhet. Mund ta shihni në foto.

Pas kësaj, përsëritni hapat dhe klikoni në butonin Shto … Futni sitin e përditësimit të YAKINDU Statechart Tools, të cilin me shpresë e keni ruajtur. Pastaj, zgjidhni kutinë e kontrollit YAKINDU License Management dhe klikoni në tjetër. Ndiqni udhëzimet. IDE juaj mund të riniset një herë.

Së fundi, mund të instaloni mjete YAKINDU Statechart. Përsëritni hapat e fundit, por këtë herë zgjidhni YAKINDU Statechart Tools Standard Edition. Edhe një herë, ndiqni udhëzimet. Pas rifillimit ju keni instaluar me sukses YAKINDU Statechart Tools.

Hapi 2: Fillimi me Makineritë Shtetërore në Studio Composer Studio

Fillimi me Makinat Shtetërore në Studio Composer Studio
Fillimi me Makinat Shtetërore në Studio Composer Studio
Fillimi me Makinat Shtetërore në Studio Composer Studio
Fillimi me Makinat Shtetërore në Studio Composer Studio

Për të përdorur makinat shtetërore vazhdoni si zakonisht dhe krijoni një Projekt të ri CCS. Hapni skedën File, hapni New dhe klikoni në CCS Project. Përcaktoni një emër projekti, zgjidhni mikrokontrolluesin tuaj dhe krijoni një projekt bosh, i cili përmban një skedar bosh main.c. Kam përdorur MSP430G2553.

Tani mund të filloni të punoni me makina shtetërore!

Klikoni me të djathtën mbi projektin, hapni New dhe zgjidhni Statechart Model. Do të hapet një Magjistar në të cilin mund të zgjidhni projektin tuaj dhe të emërtoni tabelën tuaj të gjendjes. Për shembull, quajeni blinkyStateMachine.sct.

Modeli Statechart do të shfaqet në dosjen e projektit pasi të klikoni në Finish. Klikoni në Po nëse ju kërkohet të ndryshoni perspektivën.

Hapi 3: Krijoni Makinën Blinky State

Krijoni Makinën Blinky State
Krijoni Makinën Blinky State

Tani mund të filloni të krijoni tabelën shtetërore!

Në anën e majtë, do të gjeni të ashtuquajturin Seksioni i Përkufizimit. Atje mund të shtoni elemente tekstuale në model, për shembull, operacione, të cilat mund të thirren në makinën shtetërore.

Fshini gjithçka prej tij dhe thjesht shtoni këto tre përkufizime të funksionimit:

e brendshme:

operacion init () operacion redOn () operacion redOff ()

Më pas, kaloni në modelin e tabelës shtetërore dhe shtoni tre gjendje:

  • Fillimi
  • LED i kuq i ndezur
  • LED i kuq i fikur

Lidhni gjendjet siç tregohet në figurë dhe shtoni kalimet dhe veprimet e hyrjes. Mund t'i gjeni përsëri në foton e përfshirë.

Hapi 4: Gjeneroni Kodin Shtetëror të Makinës C

Gjeneroni Kodin Shtetëror të Makinës C
Gjeneroni Kodin Shtetëror të Makinës C

Tani është koha për të gjeneruar C-Code. Për ta bërë këtë, duhet të shtohet një model gjenerator. Klikoni me të djathtën përsëri mbi projektin dhe hapni New dhe klikoni në Model Generator Code. Zgjidhni një emër për skedarin sgen. Practiceshtë një praktikë e mirë të qëndrosh me emrin e makinës shtetërore. Thirrni blinkyStateMachine.sgen dhe klikoni në Tjetër. Zgjidhni Makinën e Shtetit të dëshiruar duke klikuar në kutinë e zgjedhjes. Sigurohuni që keni zgjedhur YAKINDU SCT C Generator Code (siç duam të gjenerojmë C-Code) dhe klikoni në Finish.

Zakonisht, C-Code do të gjenerohet automatikisht, por nëse jo, mund të klikoni me të djathtën në skedën sgen dhe të klikoni në Generate Code Artifacts për ta bërë këtë. Dosjet src dhe src-gen duhet të shfaqen në projektin tuaj. Ato përfshijnë Kodin C të gjeneruar, i cili do të përditësohet automatikisht kur redaktoni dhe ruani tabelën e gjendjes.

Për shkak se kjo tabelë shtetërore përdor ngjarje të bazuara në kohë, një shërbim i kohëmatësit duhet të zbatohet. Për ta përgatitur këtë, ju duhen këto dy skedarë: sc_timer_service.c dhe sc_timer_service.h Mund t'i merrni nga GitHub ose t'i shkarkoni këtu. Ju duhet t'i shtoni ato në dosjen src.

Hapi 5: Thirrja e Makinës Shtetërore nga Kodi juaj

Së fundi, makina shtetërore mund të përdoret në funksionin tuaj kryesor!

Së pari, duhet të përfshini makinën shtetërore dhe shërbimin e kohëmatësit. Pastaj makina shtetërore, shërbimi i kohëmatësit dhe funksionet e kërkuara për shërbimin e kohëmatësit duhet të deklarohen dhe përcaktohen. Për më tepër, operacionet e përcaktuara të cilat ndezin dhe fikin përsëri led -in e kuq duhet të zbatohen.

#përfshi

#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #përcaktoni MAX_TIMERS 4 kohëmatës statikë sc_timer_t [MAX_TIMERS]; shërbimi statik sc_timer_service_t timer_service; //! zbatimi i kthimit të thirrjes për vendosjen e ngjarjeve kohore jashtme void blinkyStateMachine_setTimer (doreza BlinkyStateMachine*, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) {sc_timer_start (& shërbimi kohor, shërbimi, evid, koha_ms, periodike); } //! zbatimi i thirrjes për anulimin e ngjarjeve në kohë. zbrazëtia e jashtme blinkyStateMachine_unsetTimer (doreza BlinkyStateMachine*, const sc_eventid evid) {sc_timer_cancel (& shërbimi_mater, evid); } //! përcaktimi i operacioneve të jashtme void blinkyStateMachineInternal_init (const BlinkyStateMachine* handle) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } zbrazëtira e jashtme blinkyStateMachineInternal_redOn (const BlinkyStateMachine* dorezë) {P1OUT | = BIT0; } zbrazëtia e jashtme blinkyStateMachineInternal_redOff (const BlinkyStateMachine* dorezë) {P1OUT & = ~ BIT0; }

Funksioni kryesor përmban dy pjesë:

Fillimi dhe funksioni i futjes së makinës shtetërore dhe fillimi i kohëmatësit.

Pjesa e dytë është një lak i pafund - laku while (1). Brenda këtij laku, quhet funksioni i ciklit të drejtimit të makinës shtetërore. Më pas, MSP430 do të vendoset në Modalitetin e Fuqisë së Ulët 0 dhe vendoset biti i Ndërprerjes së Përgjithshme të Përgjithshme. Tani mikrokontrolluesi është duke fjetur dhe pret një ndërprerje. Pas ndërprerjes së WDT, kohëmatësi do të vazhdojë. Kjo do të thotë që çdo kohëmatës përditësohet dhe koha e kaluar rritet me 32 - koha në milisekonda, e cila vazhdon pas çdo ndërprerjeje të WDT.

pavlefshme kryesore (e pavlefshme) {WDTCTL = WDTPW | WDTHOLD; // Ndaloni kohëmatësin mbikëqyrës

// Init timer dhe makinë shtetërore sc_timer_service_init (& timer_service, timers, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);

ndërsa (1)

{// thirr makinën e gjendjes çdo 32 ms blinkyStateMachine_runCycle (& blinky); _bis_SR_register (LPM0_bits + GIE); sc_timer_service_proceed (& timer_service, 32); }}

// ISD WDT

#vektori i Pragmës = WDT_VECTOR _mundësi i pavlefshëm vëzhguesi_kohës (i pavlefshëm) {_bic_SR_register_on_exit (LPM0_bits + GIE); }

Hapi 6: Drejtoni Projektin

Kjo është ajo - Tani mund të ndërtoni dhe ngarkoni programin në MSP430 tuaj!

Shpresojmë, ky mësim ju ndihmoi të krijoni me sukses një projekt për MSP430 tuaj. Tani është koha për të zbatuar idetë tuaja!

Për krijimin e kodit, Mjetet YAKINDU Statechart kërkohen si një Shtojcë në Studio Composer Studio tuaj.

Ju mund të merrni faqen e përditësimit këtu! <

Fillon me një version prove 30 -ditor. Më pas, mund të merrni një licencë falas për përdorim jo-komercial!

Recommended: