Turinys:

Baigtos būsenos mašina MSP430: 6 žingsniai
Baigtos būsenos mašina MSP430: 6 žingsniai

Video: Baigtos būsenos mašina MSP430: 6 žingsniai

Video: Baigtos būsenos mašina MSP430: 6 žingsniai
Video: USE THESE UPDATED FORMATIONS TO SMASH YOUR OPPONENTS IN STATE OF SURVIVAL! 2024, Liepa
Anonim
Baigta būsenos mašina MSP430
Baigta būsenos mašina MSP430
Baigta būsenos mašina MSP430
Baigta būsenos mašina MSP430

Aš jums parodysiu, kaip programuoti MSP430G2 paleidimo planšetę su baigtinėmis būsenos mašinomis (FSM) naudojant „YAKINDU Statechart Tools“tiesiogiai „Texas Instruments Code Composer Studio“.

Šioje pamokoje yra šeši žingsniai:

  1. „YAKINDU Statechart Tools“diegimas kaip „Code Composer Studio“papildinys
  2. Darbo su „State Machines“pradžia „Code Composer Studio“
  3. Sukurkite „Blinky State Machine“
  4. Sukurkite būsenos mašinos C kodą
  5. Skambinimas valstybinei mašinai iš jūsų kodo
  6. Vykdykite projektą!

Šis projektas gali būti naudojamas kaip bet kurio MPS430 ar MSP432 planas!

Prekės

Programinė įranga:

  • „YAKINDU Statechart Tools“
  • „Code Composer Studio“(CCS) integruota kūrimo aplinka (IDE)

Techninė įranga:

MSP430G2 „LaunchPad Development“rinkinys

1 veiksmas: „YAKINDU Statechart Tools“diegimas kaip „Code Composer Studio“papildinys

„YAKINDU Statechart Tools“diegimas kaip „Code Composer Studio“papildinys
„YAKINDU Statechart Tools“diegimas kaip „Code Composer Studio“papildinys
„YAKINDU Statechart Tools“diegimas kaip „Code Composer Studio“papildinys
„YAKINDU Statechart Tools“diegimas kaip „Code Composer Studio“papildinys
„YAKINDU Statechart Tools“diegimas kaip „Code Composer Studio“papildinys
„YAKINDU Statechart Tools“diegimas kaip „Code Composer Studio“papildinys

Pirmiausia turite įdiegti „TI Code Composer Studio“. Kartą sėkmingai išbandžiau sąranką su CCS 9.2 ir senesnėmis versijomis. Atsisiuntimo nuorodą rasite čia:

Atsisiųskite CCS

Spustelėkite, kad atsisiųstumėte, ir įsitikinkite, kad diegdami bent jau pasirinkote ypač mažos galios MSP430. Tuo tarpu galite patraukti „YAKINDU Statechart Tools“atnaujinimo svetainę. Eiti į:

Atsisiųskite „YAKINDU Statechart Tools“

Šioje svetainėje spustelėkite Atsisiųsti dabar ir vykdykite instrukcijas. Kaip matote nuotraukoje: jis yra nemokamas nekomerciniam naudojimui. Po registracijos gausite atsisiuntimo parinkčių apžvalgą. Spustelėkite STANDARTINĘ ATSISIŲSTI SVETAINĘ ir spustelėkite INSTALL OF UPDATE SITE. Ten rasite nuorodą skiltyje „Stabilūs leidimai“. Patraukite šią nuorodą ir išsaugokite ją arba įdėkite į iškarpinę.

„YAKINDU Statechart Tools“diegimas į „Code Composer Studio“gali būti šiek tiek sudėtingas, atsižvelgiant į naudojamą „Code Composer Studio“versiją. Galbūt šie veiksmai yra pasenę - vis dėlto: nedvejodami paklauskite manęs komentaruose, ar jums reikia pagalbos.

Tai yra mano žingsniai:

Sėkmingai įdiegę CCS į savo sistemą, atidarykite skirtuką Pagalba ir spustelėkite Įdiegti naują programinę įrangą … Šiame vedlyje pridėkite šią naujinimo svetainę naudodami mygtuką Pridėti …:

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

Nieko nepridėkite, tai tiesiog reikia išspręsti. Tai galite pamatyti paveikslėlyje.

Po to pakartokite veiksmus ir spustelėkite mygtuką Pridėti…. Įdėkite „YAKINDU Statechart Tools“atnaujinimo svetainę, kurią, tikiuosi, išsaugojote. Tada pažymėkite žymės langelį YAKINDU License Management ir spustelėkite kitą. Sekti instrukcijas. Jūsų IDE gali būti paleistas vieną kartą.

Galiausiai galite įdiegti „YAKINDU Statechart“įrankius. Pakartokite paskutinius veiksmus, tačiau šį kartą pasirinkite „YAKINDU Statechart Tools Standard Edition“. Dar kartą sekite instrukcijas. Iš naujo paleidę sėkmingai įdiegėte „YAKINDU Statechart Tools“.

2 veiksmas: pradėkite dirbti su būsenos mašinomis „Code Composer Studio“

Darbo su būsenos mašinomis pradžia „Code Composer Studio“
Darbo su būsenos mašinomis pradžia „Code Composer Studio“
Darbo su būsenos mašinomis pradžia „Code Composer Studio“
Darbo su būsenos mašinomis pradžia „Code Composer Studio“

Norėdami naudoti būsenos mašinas, elkitės kaip įprasta ir sukurkite naują CCS projektą. Atidarykite skirtuką Failas, atidarykite Naujas ir spustelėkite CCS projektas. Apibrėžkite projekto pavadinimą, pasirinkite savo mikrovaldiklį ir sukurkite tuščią projektą, kuriame yra tuščias main.c failas. Aš naudojau MSP430G2553.

Dabar galite pradėti dirbti su valstybinėmis mašinomis!

Dešiniuoju pelės mygtuku spustelėkite projektą, atidarykite „New“ir pasirinkite „Statechart Model“. Bus atidarytas vedlys, kuriame galėsite pasirinkti savo projektą ir pavadinti būsenos diagramą. Pvz., Pavadinkite jį blinkyStateMachine.sct.

„Statechart“modelis bus rodomas projekto aplanke spustelėjus „Baigti“. Jei jūsų paprašys pakeisti perspektyvą, spustelėkite Taip.

3 žingsnis: sukurkite „Blinky State Machine“

Sukurkite „Blinky State Machine“
Sukurkite „Blinky State Machine“

Dabar galite pradėti kurti būsenos diagramą!

Kairėje pusėje rasite vadinamąjį apibrėžimų skyrių. Čia prie modelio galite pridėti tekstinių elementų, pavyzdžiui, operacijas, kurias galima iškviesti būsenos mašinoje.

Ištrinkite viską iš jo ir tiesiog pridėkite šias tris operacijų apibrėžtis:

vidinis:

operacija init () operacija redOn () operacija redOff ()

Vėliau pereikite prie būsenos diagramos modelio ir pridėkite tris būsenas:

  • Inicijavimas
  • dega raudonas šviesos diodas
  • raudonas šviesos diodas išjungtas

Prijunkite būsenas, kaip parodyta paveikslėlyje, ir pridėkite perėjimus ir įvesties veiksmus. Juos vėl rasite pridėtame paveikslėlyje.

4 veiksmas: sukurkite būsenos mašinos C kodą

Sukurkite būsenos mašinos C kodą
Sukurkite būsenos mašinos C kodą

Dabar atėjo laikas sukurti C kodą. Norėdami tai padaryti, turite pridėti generatoriaus modelį. Dar kartą dešiniuoju pelės mygtuku spustelėkite projektą ir atidarykite „New“ir spustelėkite „Code Generator Model“. Pasirinkite sgen failo pavadinimą. Gera praktika yra likti su valstybiniu mašinos pavadinimu. Pavadinkite jį blinkyStateMachine.sgen ir spustelėkite Pirmyn. Pasirinkite norimą būsenos mašiną spustelėdami žymimąjį laukelį. Įsitikinkite, kad pasirinkote YAKINDU SCT C kodų generatorių (kaip mes norime sukurti C kodą) ir spustelėkite Baigti.

Paprastai C kodas bus sugeneruotas automatiškai, tačiau jei ne, galite dešiniuoju pelės klavišu spustelėti failą „sgen“ir spustelėti „Generuoti kodo artefaktus“. Jūsų projekte turėtų būti rodomi aplankai src ir src-gen. Jie apima sugeneruotą C kodą, kuris bus automatiškai atnaujintas, kai redaguosite ir išsaugosite būsenos diagramą.

Kadangi šioje būsenos diagramoje naudojami su laiku susiję įvykiai, reikia įdiegti laikmačio paslaugą. Norėdami tai padaryti, jums reikia šių dviejų failų: sc_timer_service.c ir sc_timer_service.h Galite juos gauti iš „GitHub“arba atsisiųsti čia. Turite juos pridėti prie src aplanko.

5 veiksmas: skambinkite valstybinei mašinai iš savo kodo

Galiausiai būsenos mašina gali būti naudojama jūsų pagrindinei funkcijai!

Pirma, turite įtraukti būsenos mašiną ir laikmačio paslaugą. Tada reikia deklaruoti ir apibrėžti būsenos mašiną, laikmačio paslaugą ir reikiamas laikmačio paslaugos funkcijas. Be to, turi būti atliktos apibrėžtos operacijos, kurios vėl įjungia ir išjungia raudoną lemputę.

#įtraukti

#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #define MAX_TIMERS 4 statiniai „sc_timer_t“laikmačiai [MAX_TIMERS]; statinis sc_timer_service_t timer_service; //! atgalinio skambučio įgyvendinimas nustatant laiko įvykius extern void blinkyStateMachine_setTimer (BlinkyStateMachine* rankena, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) {sc_timer_start (& timer_service, handle, evid, time_ms, periodic); } //! atgalinio skambučio įgyvendinimas, skirtas laiko įvykiams atšaukti. extern void blinkyStateMachine_unsetTimer (BlinkyStateMachine* rankena, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! operacijų apibrėžimas extern void blinkyStateMachineInternal_init (const BlinkyStateMachine* rankena) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } extern void blinkyStateMachineInternal_redOn (const BlinkyStateMachine* rankena) {P1OUT | = BIT0; } extern void blinkyStateMachineInternal_redOff (const BlinkyStateMachine* rankena) {P1OUT & = ~ BIT0; }

Pagrindinę funkciją sudaro dvi dalys:

Būsenos mašinos inicijavimas ir įvesties funkcija bei laikmačio inicijavimas.

Antroji dalis yra begalinė kilpa - tuo tarpu (1) kilpa. Šioje cikle vadinama būsenos mašinos veikimo ciklo funkcija. Vėliau MSP430 bus nustatytas į mažos galios režimą 0 ir bus nustatytas bendras pertraukimo įjungimo bitas. Dabar mikrovaldiklis miega ir laukia pertraukos. Nutraukus WDT, laikmatis veiks toliau. Tai reiškia, kad kiekvienas laikmatis atnaujinamas, o praėjęs laikas padidinamas 32 - laikas milisekundėmis, kuris tęsiamas po kiekvieno WDT pertraukimo.

void main (void) {WDTCTL = WDTPW | WDTHOLD; // „Stop watchdog“laikmatis

// Pradinis laikmatis ir būsenos mašina sc_timer_service_init (& timer_service, laikmačiai, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);

kol (1)

{// skambinti būsenos mašinai kas 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 žingsnis: vykdykite projektą

Štai ir viskas - dabar galite sukurti ir įkelti programą į savo MSP430!

Tikimės, kad ši pamoka padėjo jums sėkmingai sukurti savo MSP430 projektą. Dabar atėjo laikas įgyvendinti savo idėjas!

Kodų generavimui „YAKINDU Statechart Tools“reikalingas kaip papildinys jūsų „Code Composer Studio“.

Atnaujinimo svetainę galite rasti čia! <

Tai prasideda nuo 30 dienų bandomosios versijos. Vėliau galite gauti nemokamą licenciją nekomerciniam naudojimui!

Rekomenduojamas: