Përmbajtje:
- Furnizimet
- Hapi 1: Instalimi i mjeteve të YAKINDU Statechart si një shtojcë në Studio Composer Studio
- Hapi 2: Fillimi me Makineritë Shtetërore në Studio Composer Studio
- Hapi 3: Krijoni Makinën Blinky State
- Hapi 4: Gjeneroni Kodin Shtetëror të Makinës C
- Hapi 5: Thirrja e Makinës Shtetërore nga Kodi juaj
- Hapi 6: Drejtoni Projektin
Video: Makina me gjendje të fundme në një MSP430: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:17
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:
- Instalimi i YAKINDU Toolchart Tools si një shtojcë në Code Composer Studio
- Fillimi me State Machines në Code Composer Studio
- Krijo Makinën Blinky State
- Gjeneroni kodin Shtetëror të Makinës C
- Thirrja e Makinës Shtetërore nga kodi juaj
- 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
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
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
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
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:
Testues i lehtë i qepjes në gjendje LED: 7 hapa
Testues i lehtë për të qepur me aftësi LED: Ky projekt ju lejon të provoni shpejt LED -të e qepura. Me këtë projekt ju mund të: Testoni LED -të para qepjes Testoni LED -të që u përzien aksidentalisht në një grup për ngjyrat Testoni LED -të për t'u siguruar që kanë të njëjtën nuancë ngjyrash
Orë dixhitale në Arduino duke përdorur një makinë të gjendjes së fundme: 6 hapa
Orë dixhitale në Arduino duke përdorur një makinë të gjendjes së fundme: Përshëndetje, unë do t'ju tregoj se si mund të krijohet një orë dixhitale me YAKINDU Statechart Tools dhe të funksionojë në një Arduino, i cili përdor një mburojë të tastierës LCD. Modeli origjinal i dixhitalit ora është marrë nga David Harel. Ai ka publikuar një punim për
Kubat LED në gjendje Stack (RGB): 11 hapa
Kubat LED të Stack-Able (RGB): Unë e bëra këtë projekt për konkursin make it glow 2018. Ideja është që do të ishte një bazë ku mund të vendosni kube të vegjël LED sipër dhe ato të ndizen. Ata do të rrinë së bashku me përdorimin e magneteve
Udhëzimi i Ramit në gjendje: 5 hapa
Ram Instruct Able: RAM përdoret nga njësia qendrore e përpunimit (CPU) kur një kompjuter po punon për të ruajtur informacionin që duhet të përdoret shumë shpejt, por nuk ruan asnjë informacion përgjithmonë
Aktivizimi / fikja e telekomandës automatike duke përdorur folenë MIC në kamerën tuaj / Stafetë me tension të ulët në gjendje të ngurtë: 4 hapa (me fotografi)
Aktivizimi / fikja e telekomandës automatike Përdorimi i folesë MIC në videokamerën tuaj / Rele me gjendje të ngurtë të tensionit të ulët: Vështrim i përgjithshëm: Ne përdorëm folenë MIC të një videokamere për të zbuluar kur videokamera është e ndezur. Ne ndërtuam një stafetë të tensionit të ulët me gjendje të ngurtë për të zbuluar folenë MIC dhe ndezur dhe fikur automatikisht një pajisje të largët në të njëjtën kohë me videokamerën. Gjendja e ngurtë