Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pag-install ng YAKINDU Statechart Tools Bilang isang Plugin sa Code Composer Studio
- Hakbang 2: Pagsisimula Sa Mga Makina ng Estado sa Code Composer Studio
- Hakbang 3: Lumikha ng Blinky State Machine
- Hakbang 4: Bumuo ng State Machine C Code
- Hakbang 5: Pagtawag sa State Machine Mula sa Iyong Code
- Hakbang 6: Patakbuhin ang Proyekto
Video: Ang Finite State Machine sa isang MSP430: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:12
Ipapakita ko sa iyo kung paano magprogram ng isang MSP430G2 Launchpad na may Finite State Machines (FSM) na gumagamit ng YAKINDU Statechart Tools nang direkta sa Texas Instruments Code Composer Studio.
Naglalaman ang tutorial na ito ng anim na hakbang:
- Pag-install ng YAKINDU Statechart Tools bilang isang plugin sa Code Composer Studio
- Pagsisimula sa Mga State Machine sa Code Composer Studio
- Lumikha ng Blinky State Machine
- Bumuo ng code ng State Machine C
- Ang pagtawag sa State Machine mula sa iyong code
- Patakbuhin ang proyekto!
Ang proyektong ito ay maaaring magamit bilang isang blueprint para sa anumang MPS430 o MSP432!
Mga gamit
Software:
- YAKINDU Statechart Tools
- Code Composer Studio (CCS) Integrated Development Environment (IDE)
Hardware:
MSP430G2 LaunchPad Development kit
Hakbang 1: Pag-install ng YAKINDU Statechart Tools Bilang isang Plugin sa Code Composer Studio
Una, kailangan mong i-install ang Code ng Composer Studio ng TI. Matagumpay kong nasubukan ang pag-set up gamit ang CCS bersyon 9.2 at mas matanda nang isang beses. Maaari kang makahanap ng isang link sa pag-download dito:
Mag-download ng CCS
Mag-click para sa pag-download at tiyaking napili mo man lang ang mga MSP430 ultra-low-power MCU habang nag-i-install. Samantala, maaari mong kunin ang site ng pag-update para sa YAKINDU Statechart Tools. Pumunta sa:
I-download ang YAKINDU Statechart Tools
Sa site na ito, mag-click sa I-download Ngayon at sundin ang mga tagubilin. Tulad ng nakikita mo sa larawan: Ito ay libre para sa di-komersyal na paggamit. Pagkatapos ng pagpaparehistro, makakakuha ka ng isang pangkalahatang ideya ng mga pagpipilian sa pag-download. Mag-click sa STANDARD DOWNLOAD SITE at mag-click sa I-INSTALL MULA SA UPDATE SITE. Doon makakakuha ka ng isang link sa ilalim ng Stable Releases. Grab ang link na ito at i-save ito o ilagay ito sa iyong clipboard.
Ang pag-install ng YAKINDU Statechart Tools sa Code Composer Studio ay maaaring medyo mahirap, depende sa bersyon ng Code Composer Studio na iyong ginagamit. Marahil ang mga hakbang na ito ay hindi napapanahon pansamantala - gayunpaman: huwag mag-atubiling tanungin ako sa mga komento kung kailangan mo ng tulong.
Ito ang aking mga hakbang:
Matapos matagumpay na mai-install ang CCS sa iyong system, buksan ang tab na Tulong at mag-click sa Pag-install ng Bagong Software … Sa wizard na ito, idagdag ang sumusunod na site ng pag-update sa pamamagitan ng pindutang Idagdag…:
download.eclipse.org/releases/2018-09/
Huwag magdagdag ng anumang bagay, kailangan lamang itong malutas. Maaari mo itong makita sa larawan.
Pagkatapos nito, ulitin ang mga hakbang at mag-click sa pindutang Idagdag… Ipasok ang site ng pag-update ng YAKINDU Statechart Tools, na inaasahan mong nai-save. Pagkatapos, piliin ang checkbox ng Pamamahala ng Lisensya ng YAKINDU at mag-click sa susunod. Sundin ang mga panuto. Maaaring muling simulan ang iyong IDE nang isang beses.
Panghuli, maaari mong mai-install ang mga tool ng YAKINDU Statechart. Ulitin ang mga huling hakbang, ngunit sa oras na ito piliin ang YAKINDU Statechart Tools Standard Edition. Muli, sundin ang mga tagubilin. Pagkatapos ng pag-restart ay matagumpay mong na-install ang YAKINDU Statechart Tools.
Hakbang 2: Pagsisimula Sa Mga Makina ng Estado sa Code Composer Studio
Upang magamit ang mga machine ng estado magpatuloy bilang normal at lumikha ng isang bagong CCS Project. Buksan ang tab na File, buksan ang Bago at mag-click sa CCS Project. Tukuyin ang isang pangalan ng proyekto, piliin ang iyong microcontroller at lumikha ng isang walang laman na proyekto, na naglalaman ng isang walang laman na main.c file. Ginamit ko ang MSP430G2553.
Ngayon ay maaari kang magsimulang magtrabaho kasama ang mga machine ng estado!
Mag-right click sa proyekto, buksan ang Bago at piliin ang Modelong Statechart. Ang isang Wizard ay bubuksan kung saan maaari mong piliin ang iyong proyekto at pangalanan ang iyong statechart. Halimbawa, tawagan itong blinkyStateMachine.sct.
Ang modelo ng Statechart ay lilitaw sa folder ng proyekto pagkatapos mag-click sa Tapusin. Mag-click sa Oo kung hihilingin sa iyo na baguhin ang pananaw.
Hakbang 3: Lumikha ng Blinky State Machine
Ngayon ay maaari mo nang simulang lumikha ng statechart!
Sa kaliwang bahagi, mahahanap mo ang tinaguriang Seksyon ng Kahulugan. Doon maaari kang magdagdag ng mga elemento ng tekstuwal sa modelo, halimbawa, mga pagpapatakbo, na maaaring tawagan sa makina ng estado.
Tanggalin ang lahat mula rito at idagdag lamang ang tatlong mga kahulugan ng operasyon na ito:
panloob:
operasyon init () operasyon redOn () operasyon redOff ()
Pagkatapos, lumipat sa modelo ng statechart at magdagdag ng tatlong mga estado:
- Pasimula
- pulang LED
- pulang LED
Ikonekta ang mga estado tulad ng ipinakita sa larawan at idagdag ang mga paglilipat at mga aksyon sa pagpasok. Mahahanap mo silang muli sa kasama na larawan.
Hakbang 4: Bumuo ng State Machine C Code
Ngayon ay oras na upang makabuo ng C-Code. Upang magawa ito, dapat idagdag ang isang modelo ng generator. I-right click muli ang proyekto at buksan ang Bago at mag-click sa Model ng Tagabuo ng Code. Pumili ng isang pangalan para sa sgen- file. Mahusay na kasanayan na manatili sa pangalan ng makina ng estado. Tawagin itong blinkyStateMachine.sgen at mag-click sa Susunod. Piliin ang nais na State Machine sa pamamagitan ng pag-click sa checkbox. Tiyaking napili mo ang YAKINDU SCT C Code Generator (tulad ng nais naming makabuo ng C-Code) at mag-click sa Tapusin.
Karaniwan, ang C-Code ay awtomatikong mabubuo, ngunit kung hindi, maaari kang mag-right click sa sgen -file at mag-click sa Bumuo ng Code ng Artifact upang magawa ito. Dapat lumitaw ang mga folder na src at src-gen sa iyong proyekto. Isinasama nila ang nabuong C-Code, na awtomatikong maa-update kapag na-edit at na-save mo ang statechart.
Dahil ang statechart na ito ay gumagamit ng mga kaganapan na nakabatay sa oras, kailangang ipatupad ang isang serbisyong timer. Upang maihanda ito, kailangan mo ang dalawang mga file na ito: sc_timer_service.c at sc_timer_service.h Maaari mong makuha ang mga ito mula sa GitHub o i-download ang mga ito dito. Dapat mong idagdag ang mga ito sa folder ng src.
Hakbang 5: Pagtawag sa State Machine Mula sa Iyong Code
Panghuli, ang makina ng estado ay maaaring magamit sa iyong pangunahing pag-andar!
Una, kailangan mong isama ang state machine at ang timer service. Pagkatapos ang machine ng estado, ang serbisyo ng timer at ang mga kinakailangang pag-andar para sa timer service ay dapat na ideklara at tukuyin. Bilang karagdagan, ang mga tinukoy na operasyon na kung saan ay nagiging pula at humantong muli ay dapat na ipatupad.
# isama
# isama ang "src-gen / BlinkyStateMachine.h" #include "src / sc_timer_service.h" BlinkyStateMachine blinky; #define MAX_TIMERS 4 static sc_timer_t timer [MAX_TIMERS]; static sc_timer_service_t timer_service; //! pagpapatupad ng callback para sa pagse-set up ng mga kaganapan sa oras extern void blinkyStateMachine_setTimer (hawakan ng BlinkyStateMachine *, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) {sc_timer_start (& timer_service, hawakan, evid, time_ms, periodic); } //! pagpapatupad ng callback para sa pagkansela ng mga kaganapan sa oras. extern void blinkyStateMachine_unsetTimer (BlinkyStateMachine * hawakan, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! pagtukoy sa mga pagpapatakbo extern void blinkyStateMachineInternal_init (const BlinkyStateMachine * hawakan) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } extern void blinkyStateMachineInternal_redOn (const BlinkyStateMachine * hawakan) {P1OUT | = BIT0; } extern void blinkyStateMachineInternal_redOff (const BlinkyStateMachine * hawakan) {P1OUT & = ~ BIT0; }
Naglalaman ang pangunahing pagpapaandar ng dalawang bahagi:
Ang pagsisimula at pagpasok ng pag-andar ng makina ng estado at ang pagsisimula ng timer.
Ang pangalawang bahagi ay isang walang katapusang loop - ang habang (1) loop. Sa loob ng loop na ito, ang pagpapatakbo ng ikot ng pagpapatakbo ng makina ng estado ay tinatawag na. Pagkatapos, ang MSP430 ay maitatakda sa Mababang Power Mode 0 at ang General Interrupt Enable na bit ay naitakda. Ngayon ang microcontroller ay natutulog at naghihintay para sa isang nakakagambala. Matapos ang makagambala ng WDT, magpapatuloy ang timer. Nangangahulugan ito na ang bawat timer ay nai-update at ang lumipas na oras ay nadagdagan ng 32 - ang oras sa milliseconds, na nagpapatuloy pagkatapos ng bawat nakakagambala ng WDT.
void main (void) {WDTCTL = WDTPW | WDTHOLD; // Itigil ang timer ng watchdog
// Init timer at state machine sc_timer_service_init (& timer_service, timer, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);
habang (1)
{// call state machine bawat 32 ms blinkyStateMachine_runCycle (& blinky); _bis_SR_register (LPM0_bits + GIE); sc_timer_service_process (& timer_service, 32); }}
// WDT ISR
#pragma vector = WDT_VECTOR _ makagambala sa walang bisa na watchdog_timer (walang bisa) {_bic_SR_register_on_exit (LPM0_bits + GIE); }
Hakbang 6: Patakbuhin ang Proyekto
Iyon lang - Ngayon ay maaari kang bumuo at mag-upload ng programa sa iyong MSP430!
Sana, ang tutorial na ito ay nakatulong sa iyo upang matagumpay na lumikha ng isang proyekto para sa iyong MSP430. Ngayon ay oras na upang magpatupad ng iyong sariling mga ideya!
Para sa pagbuo ng code, kinakailangan ang YAKINDU Statechart Tools bilang isang Plugin sa iyong Code Composer Studio.
Maaari mong makuha ang site ng pag-update dito! <
Nagsisimula ito sa 30 araw na bersyon ng pagsubok. Pagkatapos, maaari kang makakuha ng isang libreng lisensya para sa paggamit na hindi pang-komersyo!
Inirerekumendang:
Isang Halloween Scare Machine Gamit ang isang PIR, isang 3D Printed Pumpkin at ang Troll Arduino Compatible Audio Pranker / practical Joke Board .: 5 Mga Hakbang
Isang Halloween Scare Machine Gamit ang isang PIR, isang 3D Printed Pumpkin at ang Troll Arduino Compatible Audio Pranker / practical Joke Board .: Ang Troll board na nilikha ni Patrick Thomas Mitchell ng EngineeringShock Electronics, at buong pinondohan sa Kickstarter hindi pa masyadong nakakaraan. Nakuha ko ang aking gantimpala ng ilang linggo maaga upang makatulong na sumulat ng ilang mga halimbawa ng paggamit at bumuo ng isang library ng Arduino sa isang pagtatangka
Paano Makokontrol ang isang Device Gamit ang Raspberry Pi at isang Relay - ANG BASICS: 6 Hakbang
Paano Makontrol ang isang Device Gamit ang Raspberry Pi at isang Relay - ANG BASICS: Ito ay isang pangunahing at tuwid na pasulong na tutorial sa kung paano makontrol ang isang aparato gamit ang Raspberry Pi at isang Relay, kapaki-pakinabang para sa paggawa ng Mga Proyekto ng IoT Ang tutorial na ito ay para sa mga nagsisimula, magiliw ito sa sundin kahit na mayroon kang zero na kaalaman sa paggamit ng Raspberry
Paano Lumiko ang isang Chromebook Sa isang Linux Ubuntu Machine !: 5 Hakbang
Paano Lumiko ang isang Chromebook Sa isang Linux Ubuntu Machine !: Nakuha ko ang Samsung Chromebook na ito kanina. Mula nang makuha ko ito nais kong baguhin ito upang maging mas mahusay. Upang mapangasiwaan ang mga app na hindi lamang mula sa chrome webstore. Sa wakas ay natagpuan ko ang paraan. Ang Linux Ubuntu ay isang mahusay na paraan upang ma-maximize ang paggamit ng isang chrom
State Machine sa Arduino - isang Light ng Trapiko ng Pedestrian: 6 na Hakbang (na may Mga Larawan)
State Machine sa Arduino - isang Banayad na Trapiko ng Pedestrian: Hoy diyan! Ipapakita ko sa iyo kung paano mag-program ng ilaw ng trapiko para sa Arduino sa C ++ gamit ang isang may takdang makina ng estado sa pamamagitan ng paggamit ng YAKINDU Statechart Tools. Ipapakita nito ang lakas ng mga machine ng estado at maaaring magamit bilang isang blueprint para sa karagdagang
Digital Watch sa Arduino Gamit ang isang Finite State Machine: 6 Mga Hakbang
Digital Watch sa Arduino Gamit ang isang Finite State Machine: Hoy, ipapakita ko sa iyo kung paano malilikha ang isang digital na relo gamit ang YAKINDU Statechart Tools at patakbuhin ang isang Arduino, na gumagamit ng isang LCD Keypad Shield. Ang orihinal na modelo ng digital ang relo ay kinuha mula kay David Harel. Nag-publish siya ng isang papel na abou