Tartalomjegyzék:
- Kellékek
- 1. lépés: A YAKINDU Statechart Tools telepítése a Code Composer Studio beépülő moduljaként
- 2. lépés: Első lépések az állapotgépekkel a Code Composer Studio alkalmazásban
- 3. lépés: Hozza létre a Blinky State Machine -t
- 4. lépés: Létrehozza az állapotgép C kódot
- 5. lépés: Hívja az állami gépet a kódjából
- 6. lépés: Futtassa a projektet
Videó: Véges állapotú gép MSP430 -on: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Megmutatom, hogyan programozhat egy MSP430G2 indítópadot véges állapotú gépekkel (FSM) a YAKINDU Statechart Tools segítségével közvetlenül a Texas Instruments Code Composer Studio -ban.
Ez az oktatóanyag hat lépést tartalmaz:
- A YAKINDU Statechart Tools telepítése a Code Composer Studio bővítményeként
- Első lépések az State Machines programmal a Code Composer Studioban
- Hozza létre a Blinky State Machine -t
- Generálja az állapotgép C kódját
- Az államgép hívása a kódjából
- Futtassa a projektet!
Ez a projekt bármilyen MPS430 vagy MSP432 tervrajzaként használható!
Kellékek
Szoftver:
- YAKINDU Állapotjelző eszközök
- Code Composer Studio (CCS) integrált fejlesztői környezet (IDE)
Hardver:
MSP430G2 LaunchPad fejlesztői készlet
1. lépés: A YAKINDU Statechart Tools telepítése a Code Composer Studio beépülő moduljaként
Először telepítenie kell a TI Code Composer Studio programját. Egyszer sikeresen teszteltem a telepítést a CCS 9.2 és régebbi verzióival. Letöltési linket itt találsz:
Töltse le a CCS -t
Kattintson a letöltéshez, és győződjön meg arról, hogy telepítés közben legalább az MSP430 ultra-alacsony fogyasztású MCU-kat választotta. Eközben megkaphatja a YAKINDU Statechart Tools frissítési webhelyét. Menj:
Töltse le a YAKINDU Statechart Tools eszközt
Ezen az oldalon kattintson a Letöltés most gombra, és kövesse az utasításokat. Amint a képen látható: Nem kereskedelmi használatra ingyenes. A regisztráció után áttekintést kap a letöltési lehetőségekről. Kattintson a STANDARD LETÖLTŐ OLDALRA, majd az INSTALL FROM UPATE SITE -ra. Ott kap egy linket a Stabil kiadások alatt. Fogja meg ezt a linket, és mentse el, vagy tegye a vágólapra.
A YAKINDU Statechart Tools telepítése a Code Composer Studio programba kissé bonyolult lehet, a használt Code Composer Studio verziójától függően. Lehet, hogy ezek a lépések időközben elavultak - azonban: ne habozzon megkérdezni a megjegyzésekben, ha segítségre van szüksége.
Ezek a lépéseim:
Miután sikeresen telepítette a CCS -t a rendszerére, nyissa meg a Súgó lapot, és kattintson az Új szoftver telepítése … Ebben a varázslóban adja hozzá a következő frissítési webhelyet a Hozzáadás… gombbal:
download.eclipse.org/releases/2018-09/
Ne tegyen hozzá semmit, csak meg kell oldani. A képen látható.
Ezt követően ismételje meg a lépéseket, és kattintson a Hozzáadás… gombra. Helyezze be a remélhetőleg mentett YAKINDU Statechart Tools frissítési webhelyet. Ezután jelölje be a YAKINDU License Management jelölőnégyzetet, majd kattintson a Tovább gombra. Kövesse az utasításokat. Az IDE egyszer újraindulhat.
Végül telepítheti a YAKINDU Statechart eszközöket. Ismételje meg az utolsó lépéseket, de ezúttal válassza a YAKINDU Statechart Tools Standard Edition lehetőséget. Ismét kövesse az utasításokat. Az újraindítás után sikeresen telepítette a YAKINDU Statechart Tools eszközt.
2. lépés: Első lépések az állapotgépekkel a Code Composer Studio alkalmazásban
Az állapotgépek használatához a szokásos módon járjon el, és hozzon létre egy új CCS -projektet. Nyissa meg a Fájl lapot, nyissa meg az Új elemet, és kattintson a CCS Project elemre. Határozza meg a projekt nevét, válassza ki a mikrokontrollert, és hozzon létre egy üres projektet, amely egy üres main.c fájlt tartalmaz. Én az MSP430G2553 -at használtam.
Most már elkezdheti az állami gépekkel való munkát!
Kattintson a jobb egérgombbal a projektre, nyissa meg az Új elemet, és válassza az Állami diagram modellt. Megnyílik egy varázsló, amelyben kiválaszthatja a projektet és elnevezheti az állapot diagramját. Nevezze például blinkyStateMachine.sct.
A Statechart modell a Befejezés gombra kattintva megjelenik a projekt mappájában. Kattintson a Igen gombra, ha a perspektíva megváltoztatására kéri.
3. lépés: Hozza létre a Blinky State Machine -t
Most elkezdheti az állapotdiagram létrehozását!
A bal oldalon találja az úgynevezett Definíció részt. Ott szöveges elemeket adhat hozzá a modellhez, például műveleteket, amelyek az állapotgépben hívhatók meg.
Töröljön belőle mindent, és egyszerűen adja hozzá ezt a három műveletdefiníciót:
belső:
művelet init () művelet redOn () művelet redOff ()
Ezután váltson az állapotdiagram modellre, és adjon hozzá három állapotot:
- Inicializálás
- piros LED világít
- piros LED nem világít
Csatlakoztassa az állapotokat a képen látható módon, és adja hozzá az átmeneteket és a beviteli műveleteket. A mellékelt képen újra megtalálod őket.
4. lépés: Létrehozza az állapotgép C kódot
Itt az ideje a C-kód létrehozásának. Ehhez generátor modellt kell hozzáadni. Kattintson ismét a jobb gombbal a projektre, és nyissa meg az Új elemet, majd kattintson a Kódgenerátor modellre. Válasszon nevet a sgen fájlhoz. Jó gyakorlat, ha az állami gépnévnél marad. Nevezze blinkyStateMachine.sgen és kattintson a Tovább gombra. Válassza ki a kívánt állapotgépet a jelölőnégyzetre kattintva. Győződjön meg arról, hogy a YAKINDU SCT C kódgenerátort választotta (mivel C-kódot szeretnénk generálni), és kattintson a Befejezés gombra.
Általában a C-kód automatikusan generálódik, de ha nem, akkor kattintson a jobb gombbal a sgen -file-re, és kattintson a Kódleletek létrehozása gombra. Az src és src-gen mappáknak meg kell jelenniük a projektben. Ezek tartalmazzák a generált C-kódot, amely automatikusan frissül az állapotdiagram szerkesztésekor és mentésekor.
Mivel ez az állapotdiagram időalapú eseményeket használ, időzítő szolgáltatást kell végrehajtani. Ennek előkészítéséhez a következő két fájlra van szüksége: sc_timer_service.c és sc_timer_service.h A GitHub -ról letöltheti vagy letöltheti innen. Hozzá kell adnia őket az src mappához.
5. lépés: Hívja az állami gépet a kódjából
Végül az állapotgép használható a fő funkciójában!
Először is be kell vonnia az állapotgépet és az időzítő szolgáltatást. Ezután deklarálni és definiálni kell az állapotgépet, az időzítő szolgáltatást és az időzítő szolgáltatáshoz szükséges funkciókat. Ezenkívül végre kell hajtani azokat a meghatározott műveleteket, amelyek a piros ledet ki- és bekapcsolják.
#befoglalni
#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #define MAX_TIMERS 4 statikus sc_timer_t időzítő [MAX_TIMERS]; static sc_timer_service_t timer_service; //! visszahívási megvalósítás az időesemények beállításához extern void blinkyStateMachine_setTimer (BlinkyStateMachine* fogantyú, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) {sc_timer_start (& timer_service, handle, evid, time_ms, periodic); } //! visszahívási megvalósítás az időbeli események törléséhez. extern void blinkyStateMachine_unsetTimer (BlinkyStateMachine* fogantyú, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! műveletek meghatározása extern void blinkyStateMachineInternal_init (const BlinkyStateMachine* fogantyú) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } extern void blinkyStateMachineInternal_redOn (const BlinkyStateMachine* fogantyú) {P1OUT | = BIT0; } extern void blinkyStateMachineInternal_redOff (const BlinkyStateMachine* fogantyú) {P1OUT & = ~ BIT0; }
A fő funkció két részből áll:
Az állapotgép inicializálása és enter funkciója, valamint az időzítő inicializálása.
A második rész egy végtelen ciklus - a while (1) hurok. Ezen a cikluson belül az állapotgép futási ciklusfüggvényét hívjuk meg. Ezt követően az MSP430 alacsony energiafogyasztású módba kerül, és az Általános megszakítás engedélyezése bit lesz beállítva. Most a mikrokontroller alszik, és megszakításra vár. A WDT megszakítása után az időzítő folytatja. Ez azt jelenti, hogy minden időzítő frissül, és az eltelt idő 32 -gyel nő - ez az idő ezredmásodpercben, ami a WDT minden megszakítása után folytatódik.
void main (void) {WDTCTL = WDTPW | WDTHOLD; // Stop watchdog időzítő
// Kezdő időzítő és állapotgép sc_timer_service_init (& timer_service, timers, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);
míg (1)
{// állapotállapot hívása 32 ms -onként 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. lépés: Futtassa a projektet
Ennyi - Most felépítheti és feltöltheti a programot az MSP430 -ra!
Remélhetőleg ez az oktatóanyag segített sikeresen létrehozni egy projektet az MSP430 számára. Itt az ideje, hogy megvalósítsa saját elképzeléseit!
A kódgeneráláshoz a YAKINDU Statechart Tools szükséges plug -inként a Code Composer Studio -ban.
A frissítési oldalt itt érheti el! <
30 napos próbaverzióval kezdődik. Ezt követően ingyenes licencet kaphat nem kereskedelmi célokra!
Ajánlott:
Kihangosított karton Gumball gép: 18 lépés (képekkel)
Kihangosított karton Gumball gép: Érintésmentes Gumball gépet készítettünk micro: bit, Crazy Circuits Bit Board, távolságérzékelő, szervó és karton használatával. Elkészítése és használata "BLAST" volt! ? ? Amikor a kezét a rakéta aljába teszi, egy távolságérzékelő
Automatizált fröccsöntő gép műanyag újrahasznosításhoz: 5 lépés
Automatizált fröccsöntő gép műanyag újrahasznosításhoz: Sziasztok :) Ez az Instructable a "műanyag újrahasznosításra alkalmas automatizált fröccsöntő gépünkről" szól. (úgynevezett Smart Injector) A gép mögött az az ötlet áll, hogy decentralizált műanyag -újrahasznosítási megoldást kínáljon. Az újrahasznosítás gyakran korlátozott
Homok Tornado gép: 4 lépés
Sand Tornado Machine: Hé srácok. Még új vagyok ebben, de mindenképpen megpróbálok részt venni a versenyen. Ez egy projekt lesz arról, hogyan lehet homokos tornádógépet készíteni saját otthonában. Ez egy viszonylag egyszerű projekt, és nem igényel sok munkát. Megjegyzés*Mindig olvassa el a
A különböző haszontalan gép: 6 lépés (képekkel)
A különböző haszontalan gépek: Annyi haszontalan géppel, megpróbáltam olyat készíteni, ami egy kicsit más. Ahelyett, hogy egy mechanizmussal tolná vissza a váltókapcsolót, ez a gép egyszerűen 180 fokkal elfordítja a kapcsolót. Ebben a projektben egy Nema -t használtam 17 léptetőmotor, amely
Digitális óra Arduino -n véges állapotú gép használatával: 6 lépés
Digitális óra az Arduino -n véges állapotú gép használatával: Szia, megmutatom, hogyan hozható létre digitális óra a YAKINDU Statechart Tools segítségével, és hogyan futtatható egy Arduino -n, amely LCD billentyűzetpajzsot használ. az órát David Hareltől vették. Közölt egy dokumentumot arról, hogy