Բովանդակություն:
- Պարագաներ
- Քայլ 1. YAKINDU Statechart Tools- ի տեղադրում ՝ որպես Code Composer Studio- ի հավելում
- Քայլ 2. Պետական մեքենաների գործարկումը Code Composer Studio- ում
- Քայլ 3. Ստեղծեք Blinky State Machine- ը
- Քայլ 4. Ստեղծեք պետական մեքենայի C կոդը
- Քայլ 5. Պետական մեքենա զանգահարեք ձեր ծածկագրից
- Քայլ 6: Գործարկեք նախագիծը:
Video: Վերջնական վիճակի մեքենա MSP430- ի վրա. 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Ես ձեզ ցույց կտամ, թե ինչպես ծրագրավորել MSP430G2 Launchpad վերջավոր վիճակի մեքենաներով (FSM) ՝ օգտագործելով YAKINDU Statechart Tools- ը անմիջապես Texas Instruments Code Composer Studio- ում:
Այս ձեռնարկը պարունակում է վեց քայլ.
- YAKINDU Statechart Tools- ի տեղադրում ՝ որպես Code Composer Studio- ի հավելում
- Սկսել պետական մեքենաների հետ Code Composer Studio- ում
- Ստեղծեք Blinky State Machine- ը
- Ստեղծեք պետական մեքենայի C ծածկագիրը
- Ձեր կոդից զանգահարեք պետական մեքենա
- Գործարկեք նախագիծը:
Այս նախագիծը կարող է օգտագործվել որպես նախագիծ ցանկացած MPS430 կամ MSP432- ի համար:
Պարագաներ
Softwareրագրային ապահովում:
- YAKINDU Statechart գործիքներ
- Code Composer Studio (CCS) ինտեգրված զարգացման միջավայր (IDE)
Սարքավորումներ:
MSP430G2 LaunchPad զարգացման հավաքածու
Քայլ 1. YAKINDU Statechart Tools- ի տեղադրում ՝ որպես Code Composer Studio- ի հավելում
Նախ, անհրաժեշտ է տեղադրել TI- ի Code Composer Studio- ն: Մեկ անգամ հաջողությամբ փորձարկել եմ կարգավորումը CCS 9.2 և ավելի բարձր տարբերակով: Ներբեռնման հղումը կարող եք գտնել այստեղ ՝
Ներբեռնեք CCS- ը
Ներբեռնելու համար կտտացրեք և համոզվեք, որ տեղադրման ընթացքում գոնե ընտրել եք MSP430 ծայրահեղ ցածր էներգիայի MCU- ները: Մինչդեռ, կարող եք գրավել YAKINDU Statechart Tools- ի թարմացման կայքը: Գնալ:
Ներբեռնեք YAKINDU Statechart Tools- ը
Այս կայքում կտտացրեք Ներբեռնեք հիմա և հետևեք հրահանգներին: Ինչպես տեսնում եք լուսանկարում. Այն անվճար է ոչ առևտրային օգտագործման համար: Գրանցվելուց հետո դուք կստանաք ներբեռնման ընտրանքների ակնարկ: Կտտացրեք STANDARD DOWNLOAD SITE և կտտացրեք INSTALL FROM UPDATE SITE- ից: Այնտեղ դուք կստանաք հղում կայուն թողարկումների ներքո: Բռնեք այս հղումից և պահեք այն կամ տեղադրեք ձեր սեղմատախտակին:
YAKINDU Statechart Tools- ի տեղադրումը Code Composer Studio- ում կարող է մի փոքր բարդ լինել `կախված ձեր օգտագործած Code Composer Studio- ի տարբերակից: Միգուցե այս քայլերն այդ ընթացքում հնացած են, սակայն. Մի հապաղեք մեկնաբանություններում ինձ հարցնել, եթե օգնության կարիք ունեք:
Սրանք իմ քայլերն են.
CCS- ը ձեր համակարգում հաջողությամբ տեղադրելուց հետո բացեք Օգնության ներդիրը և կտտացրեք Տեղադրեք նոր ծրագրաշար… Այս հրաշագործում ավելացրեք հետևյալ թարմացման կայքը Ավելացնել… կոճակի միջոցով.
download.eclipse.org/releases/2018-09/
Ոչինչ մի ավելացրեք, այն պարզապես պետք է լուծվի: Դա կարող եք տեսնել նկարի վրա:
Դրանից հետո կրկնել քայլերը և կտտացնել Ավելացնել… կոճակին: Տեղադրեք YAKINDU Statechart Tools- ի թարմացման կայքը, որը դուք հուսով եք պահել: Այնուհետև ընտրեք YAKINDU լիցենզիայի կառավարման վանդակը և կտտացրեք հաջորդը: Հետևեք հրահանգներին: Ձեր IDE- ն կարող է մեկ անգամ վերագործարկվել:
Վերջապես, կարող եք տեղադրել YAKINDU Statechart գործիքներ: Կրկնեք վերջին քայլերը, բայց այս անգամ ընտրեք YAKINDU Statechart Tools Standard Edition: Կրկին հետևեք հրահանգներին: Վերագործարկվելուց հետո դուք հաջողությամբ տեղադրել եք YAKINDU Statechart Tools- ը:
Քայլ 2. Պետական մեքենաների գործարկումը Code Composer Studio- ում
Պետական մեքենաներն օգտագործելու համար անցեք սովորական ռեժիմով և ստեղծեք նոր CCS նախագիծ: Բացեք Ֆայլ ներդիրը, բացեք Նորը և կտտացրեք CCS Project- ին: Սահմանեք ծրագրի անունը, ընտրեք ձեր միկրոկառավարիչը և ստեղծեք դատարկ նախագիծ, որը պարունակում է դատարկ main.c ֆայլ: Ես օգտագործել եմ MSP430G2553- ը:
Այժմ դուք կարող եք սկսել աշխատել պետական մեքենաների հետ:
Աջ սեղմեք ծրագրի վրա, բացեք Նորը և ընտրեք Statechart Model: Կբացվի հրաշագործ, որում կարող եք ընտրել ձեր նախագիծը և անվանել ձեր պետական գծապատկերը: Օրինակ, անվանեք blinkyStateMachine.sct:
Statechart մոդելը կհայտնվի ծրագրի թղթապանակում Finish- ը սեղմելուց հետո: Կտտացրեք Այո, եթե ձեզ խնդրեն փոխել հեռանկարը:
Քայլ 3. Ստեղծեք Blinky State Machine- ը
Այժմ կարող եք սկսել ստեղծել պետական գծապատկեր:
Ձախ կողմում դուք կգտնեք այսպես կոչված սահմանման բաժին: Այնտեղ կարող եք մոդելին ավելացնել տեքստային տարրեր, օրինակ ՝ գործողություններ, որոնք կարելի է անվանել պետական մեքենայում:
Deնջեք դրանից ամեն ինչ և պարզապես ավելացրեք գործողության այս երեք սահմանումները.
ներքին:
գործողություն init () գործողություն redOn () գործողություն redOff ()
Դրանից հետո անցեք պետական գծապատկերային մոդելին և ավելացրեք երեք վիճակ.
- Նախաստորագրում
- կարմիր LED- ը միացված է
- կարմիր LED- ն անջատված է
Միացրեք վիճակները, ինչպես ցույց է տրված նկարում և ավելացրեք անցումներն ու մուտքի գործողությունները: Դուք դրանք կրկին կարող եք գտնել ներառված նկարի վրա:
Քայլ 4. Ստեղծեք պետական մեքենայի C կոդը
Այժմ ժամանակն է ստեղծել C-Code: Դա անելու համար անհրաժեշտ է ավելացնել գեներատորի մոդել: Մեկ անգամ ևս աջ սեղմեք ծրագրի վրա և բացեք «Նոր» և կտտացրեք Code Generator Model- ին: Ընտրեք անուն sgen- ֆայլի համար: Պետական մեքենայի անվան հետ մնալը լավ պրակտիկա է: Callանգահարեք այն blinkyStateMachine.sgen և կտտացրեք Հաջորդը: Ընտրեք ցանկալի պետական մեքենա ՝ սեղմելով վանդակը: Համոզվեք, որ ընտրել եք YAKINDU SCT C կոդի գեներատորը (քանի որ մենք ցանկանում ենք գեներացնել C-Code) և կտտացրեք Ավարտել:
Սովորաբար, C-Code- ը ինքնաբերաբար կստեղծվի, բայց եթե ոչ, ապա դրա համար կարող եք աջ սեղմել sgen -file- ի վրա և սեղմել Generate Code Artifacts- ի վրա: Src և src-gen պանակները պետք է հայտնվեն ձեր նախագծում: Դրանք ներառում են գեներացված C- կոդը, որն ինքնաբերաբար կթարմացվի, երբ խմբագրեք և պահեք պետական գրաֆիկը:
Քանի որ այս պետական գծապատկերն օգտագործում է ժամանակի վրա հիմնված իրադարձություններ, անհրաժեշտ է ժամանակաչափ ծառայություն իրականացնել: Սա պատրաստելու համար ձեզ հարկավոր են այս երկու ֆայլերը ՝ sc_timer_service.c և sc_timer_service.h Դուք կարող եք դրանք ստանալ GitHub- ից կամ ներբեռնել այստեղից: Դուք պետք է դրանք ավելացնեք src պանակում:
Քայլ 5. Պետական մեքենա զանգահարեք ձեր ծածկագրից
Վերջապես, պետական մեքենան կարող է օգտագործվել ձեր հիմնական գործառույթի մեջ:
Նախ, դուք պետք է ներառեք պետական մեքենան և ժամանակաչափի ծառայությունը: Այնուհետեւ պետք է հայտարարվեն եւ սահմանվեն պետական մեքենան, ժամաչափի ծառայությունը եւ ժամաչափի ծառայության համար անհրաժեշտ գործառույթները: Բացի այդ, պետք է իրականացվեն սահմանված գործողությունները, որոնք կրկին միացնում և անջատում են կարմիր լեդին:
#ներառում
#ներառել "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #սահմանել MAX_TIMERS 4 ստատիկ sc_timer_t ժամանակաչափ [MAX_TIMERS]; ստատիկ sc_timer_service_t timer_service; //! հետադարձ կապի իրականացում ժամանակային իրադարձությունների կարգավորման համար } //! հետադարձ զանգի իրականացում `ժամանակի իրադարձությունները չեղյալ հայտարարելու համար: extern void blinkyStateMachine_unsetTimer (BlinkyStateMachine* բռնակ, const sc_eventid evid) {sc_timer_cancel (& timer_service, evid); } //! գործողությունների սահմանում extern void blinkyStateMachineInternal_init (const BlinkyStateMachine* բռնակ) {WDTCTL = WDT_MDLY_32; IE1 | = WDTIE; P1DIR | = BIT0; } extern void blinkyStateMachineInternal_redOn (const BlinkyStateMachine* բռնակ) {P1OUT | = BIT0; } extern void blinkyStateMachineInternal_redOff (const BlinkyStateMachine* բռնակ) {P1OUT & = ~ BIT0; }
Հիմնական գործառույթը պարունակում է երկու մաս.
Պետական մեքենայի նախաստորագրումը և մուտքագրման գործառույթը և ժամանակաչափի սկզբնավորումը:
Երկրորդ մասը անվերջ հանգույց է `while (1) հանգույցը: Այս հանգույցի մեջ կոչվում է պետական մեքենայի վազքի ցիկլի գործառույթ: Դրանից հետո MSP430- ը կդրվի ցածր էներգիայի ռեժիմի 0 -ի վրա և ընդհանուր ընդհատման ակտիվացման բիթը կտեղադրվի: Այժմ միկրոկառավարիչը քնում է և սպասում է ընդհատման: WDT- ի ընդհատումից հետո ժամանակաչափը կշարունակվի: Սա նշանակում է, որ յուրաքանչյուր ժամաչափ թարմացվում է, իսկ անցած ժամանակը ավելանում է 32 -ով `ժամանակը միլիվայրկյանների ընթացքում, որն ընթանում է WDT- ի յուրաքանչյուր ընդհատումից հետո:
դատարկ հիմնական (դատարկ) {WDTCTL = WDTPW | WDTHOLD; // Դադարեցրեք պահակախմբի ժամաչափը
// itամաչափի և պետական մեքենայի սկիզբ sc_timer_service_init (& timer_service, timers, MAX_TIMERS, (sc_raise_time_event_fp) & blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init (& blinky); blinkyStateMachine_enter (& blinky);
մինչդեռ (1)
{// զանգահարեք պետական մեքենա յուրաքանչյուր 32 ms յուրաքանչյուր blinkyStateMachine_runCycle (& blinky); _bis_SR_register (LPM0_bits + GIE); sc_timer_service_proceed (& timer_service, 32); }}
// WDT ISR
#պրագմայի վեկտոր = WDT_VECTOR _ ընդհատվող դատարկ դիտարկիչ_ ժամանակաչափ (անվավեր) {_bic_SR_register_on_exit (LPM0_bits + GIE); }
Քայլ 6: Գործարկեք նախագիծը:
Վերջ, այժմ կարող եք ծրագիրը կառուցել և վերբեռնել ձեր MSP430- ում:
Հուսանք, այս ձեռնարկը օգնեց ձեզ հաջողությամբ ստեղծել նախագիծ ձեր MSP430- ի համար: Հիմա ժամանակն է իրականացնել ձեր սեփական գաղափարները:
Կոդերի ստեղծման համար YAKINDU Statechart Tools- ը պահանջվում է որպես Plugin ձեր Code Composer Studio- ում:
Թարմացման կայքը կարող եք ստանալ այստեղ: <
Այն սկսվում է 30 օր փորձնական տարբերակով: Դրանից հետո կարող եք անվճար լիցենզիա ստանալ ոչ առևտրային օգտագործման համար:
Խորհուրդ ենք տալիս:
Ստեղծեք ձեր սեփական պինդ վիճակի ռելե: 4 քայլ (նկարներով)
Ստեղծեք ձեր սեփական պինդ վիճակի ռելեը. Այս նախագծում մենք կանդրադառնանք պինդ վիճակի ռելեներ, կպարզենք, թե ինչպես են դրանք աշխատում և երբ օգտագործել դրանք, և վերջում կստեղծենք մեր սեփական DIY Solid State ռելե: Եկեք սկսենք
Rանկացած մեքենա/մեքենա դարձնել Bluetooth հավելվածի վերահսկման մեքենա ՝ 9 քայլ
Rանկացած R/C մեքենա վերածել Bluetooth ծրագրի կառավարման R/C մեքենայի. Այս նախագիծը ցույց է տալիս սովորական հեռակառավարման մեքենան Bluetooth (BLE) կառավարման մեքենայի Wombatics SAM01 ռոբոտաշինական տախտակով, Blynk App- ով և MIT App Inventor- ով փոխելու քայլերը: շատ ցածր գնով RC մեքենաներ են `բազմաթիվ հնարավորություններով, ինչպիսիք են LED լուսարձակները և
Թվային ժամացույց Arduino- ում `օգտագործելով վերջնական վիճակի մեքենա. 6 քայլ
Թվային ժամացույց Arduino- ում ՝ օգտագործելով վերջնական վիճակի մեքենա. Բարև, ես ձեզ ցույց կտամ, թե ինչպես կարելի է թվային ժամացույց ստեղծել YAKINDU Statechart Tools- ով և աշխատել Arduino- ի վրա, որն օգտագործում է LCD ստեղնաշարի վահանը: Թվային բնօրինակը ժամացույցը վերցված է Դավիթ Հարելից: Նա հրապարակել է մի թերթ
DIY պինդ վիճակի փոխանցում `4 քայլ
DIY Solid State Relay. Բարև ընկերներ, այսօր ես պատրաստվում եմ մեկուսացված SSR կատարել: Ինչպես գիտենք, ավանդական ռելեներ ապահովում են գալվանական մեկուսացում, բայց դա էլեկտրամեխանիկական անջատիչ է, քանի որ ժամանակի ընթացքում նրա կոնտակտները վնասվել են, ուստի ես որոշեցի կատարել պինդ վիճակի ռելեներ `բեռը փոխելու համար:
Ավտոմատ հեռակառավարման վահանակի միացում / անջատում ՝ տեսախցիկում MIC խցիկի օգտագործմամբ / ցածր լարման պինդ վիճակի ռելե. 4 քայլ (նկարներով)
Ավտոմատ հեռակա միացում / անջատում ՝ օգտագործելով տեսախցիկում MIC խցիկ / ցածր լարման պինդ վիճակի ռելե. Ակնարկ. Մենք օգտագործել ենք տեսախցիկի MIC խցիկը `տեսախցիկի միացման ժամանակը հայտնաբերելու համար: Մենք կառուցեցինք ցածր լարման պինդ վիճակի ռելե ՝ MIC խցիկը հայտնաբերելու և տեսախցիկի նկարահանման հետ միաժամանակ հեռակա սարքը ինքնաբերաբար միացնելու և անջատելու համար: Պինդ վիճակ