Turinys:
- Prekės
- 1 veiksmas: „YAKINDU Statechart Tools“diegimas kaip „Code Composer Studio“papildinys
- 2 veiksmas: pradėkite dirbti su būsenos mašinomis „Code Composer Studio“
- 3 žingsnis: sukurkite „Blinky State Machine“
- 4 veiksmas: sukurkite būsenos mašinos C kodą
- 5 veiksmas: skambinkite valstybinei mašinai iš savo kodo
- 6 žingsnis: vykdykite projektą
Video: Baigtos būsenos mašina MSP430: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
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:
- „YAKINDU Statechart Tools“diegimas kaip „Code Composer Studio“papildinys
- Darbo su „State Machines“pradžia „Code Composer Studio“
- Sukurkite „Blinky State Machine“
- Sukurkite būsenos mašinos C kodą
- Skambinimas valstybinei mašinai iš jūsų kodo
- 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
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“
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“
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ą
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:
Šeimos / bendradarbio būsenos indikatorius: 6 žingsniai (su nuotraukomis)
Šeimos / bendradarbio būsenos indikatorius: Mano pirmasis pamokomas, daugelis projektų per daugelį metų man padėjo, tikiuosi, kad tai padės kam nors kitam. Trumpa istorija … Mums reikėjo būdo parodyti vienas kitam savo būseną, o ne nutraukti skambučius ar likti nuošalyje, kai manome, kad kitas
„PurpleAir“oro kokybės būsenos LED ekranas: 4 žingsniai
„PurpleAir“oro kokybės būsenos šviesos diodų ekranas: dėl pastarųjų miškų gaisrų Kalifornijoje labai pablogėjo oro kokybė San Franciske. Mes vėl ir vėl patikrinome „PurpleAir“žemėlapį savo telefonuose ar nešiojamuosiuose kompiuteriuose, norėdami pamatyti, kada oras yra pakankamai saugus, kad būtų galima laimėti
Darbo iš namų būsenos indikatorius: 5 žingsniai
Darbo iš namų būsenos indikatorius: Esant dabartinei situacijai dirbant namuose, susiduriu su tam tikrais iššūkiais, nes mano vaikai taip pat mokosi iš namų. Kartais darbo ir šeimos gyvenimas gali būti šiek tiek neryškus. Taigi aš turiu sugebėti su savo vaikais nustatyti tam tikras pagrindines taisykles, kad
Skaitmeninis laikrodis „Arduino“naudojant baigtinės būsenos mašiną: 6 žingsniai
Skaitmeninis laikrodis „Arduino“naudojant baigtinės būsenos mašiną: Ei, aš jums parodysiu, kaip skaitmeninį laikrodį galima sukurti naudojant „YAKINDU Statechart Tools“ir paleisti „Arduino“, kuriame naudojamas LCD klaviatūros skydas. laikrodis buvo paimtas iš Davido Harelio. Jis paskelbė straipsnį apie
„Arduino PLC 32“I/O+būsenos mašina+SCADA arba HMI: 8 žingsniai
„Arduino PLC 32“I/O+būsenos mašina+SCADA arba HMI: daugybė būdų programuoti, valdyti ir prižiūrėti pramoninę sistemą naudojant „arduino“