Съдържание:

Машина с крайно състояние на MSP430: 6 стъпки
Машина с крайно състояние на MSP430: 6 стъпки

Видео: Машина с крайно състояние на MSP430: 6 стъпки

Видео: Машина с крайно състояние на MSP430: 6 стъпки
Видео: угнали машину! 2024, Юли
Anonim
Машина с крайно състояние на MSP430
Машина с крайно състояние на MSP430
Машина с крайно състояние на MSP430
Машина с крайно състояние на MSP430

Ще ви покажа как да програмирате MSP430G2 Launchpad с конечни машини (FSM) с помощта на инструментите за диаграми на състоянието на YAKINDU директно в Texas Instruments Code Composer Studio.

Този урок съдържа шест стъпки:

  1. Инсталиране на YAKINDU Statechart Tools като приставка за Code Composer Studio
  2. Първи стъпки с State Machines в Code Composer Studio
  3. Създайте Blinky State Machine
  4. Генерирайте кода на State Machine C
  5. Обаждане на State Machine от вашия код
  6. Стартирайте проекта!

Този проект може да се използва като план за всеки MPS430 или MSP432!

Консумативи

Софтуер:

  • Инструменти за диаграми на състоянието на YAKINDU
  • Code Composer Studio (CCS) Интегрирана среда за разработка (IDE)

Хардуер:

MSP430G2 комплект за разработка на LaunchPad

Стъпка 1: Инсталиране на инструментите на YAKINDU Statechart като приставка за Code Composer Studio

Инсталиране на инструментите за диаграми на състоянието на YAKINDU като приставка за Code Composer Studio
Инсталиране на инструментите за диаграми на състоянието на YAKINDU като приставка за Code Composer Studio
Инсталиране на инструментите за диаграми на състоянието на YAKINDU като приставка за Code Composer Studio
Инсталиране на инструментите за диаграми на състоянието на YAKINDU като приставка за Code Composer Studio
Инсталиране на инструментите за диаграми на състоянието на YAKINDU като плъгин към Code Composer Studio
Инсталиране на инструментите за диаграми на състоянието на YAKINDU като плъгин към Code Composer Studio

Първо, трябва да инсталирате Code Composer Studio на TI. Веднъж успешно тествах настройката с CCS версия 9.2 и по -стара. Тук можете да намерите връзка за изтегляне:

Изтеглете CCS

Кликнете за изтегляне и се уверете, че сте избрали поне MSP430 MCU с ултра ниска мощност, докато инсталирате. Междувременно можете да вземете сайта за актуализация за YAKINDU Statechart Tools. Отидете на:

Изтеглете инструменти за диаграми на състоянието на YAKINDU

На този сайт кликнете върху Изтеглете сега и следвайте инструкциите. Както можете да видите на снимката: Той е безплатен за некомерсиална употреба. След регистрацията ще получите преглед на опциите за изтегляне. Щракнете върху СТАНДАРТЕН ИЗТЕГЛЯНЕ НА САЙТ и кликнете върху ИНСТАЛИРАНЕ ОТ АКТУАЛИЗИРАНЕ НА САЙТА. Там ще получите връзка под Стабилни версии. Вземете тази връзка и я запазете или поставете в клипборда.

Инсталирането на YAKINDU Statechart Tools в Code Composer Studio може да бъде малко сложно, в зависимост от версията на Code Composer Studio, която използвате. Може би тези стъпки са остарели междувременно - обаче: не се колебайте да ме попитате в коментарите, ако имате нужда от помощ.

Това са моите стъпки:

След като успешно инсталирате CCS във вашата система, отворете раздела Помощ и щракнете върху Инсталиране на нов софтуер … В този съветник добавете следния сайт за актуализация чрез бутона Добавяне …:

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

Не добавяйте нищо, просто трябва да се реши. Можете да го видите на снимката.

След това повторете стъпките и кликнете върху бутона Добавяне … Вмъкнете сайта за актуализиране на инструментите за държавни диаграми на YAKINDU, който се надяваме да сте запазили. След това поставете отметка в квадратчето YAKINDU License Management и щракнете върху напред. Следвайте инструкциите. Вашата IDE може да се рестартира веднъж.

И накрая, можете да инсталирате инструментите на YAKINDU Statechart. Повторете последните стъпки, но този път изберете YAKINDU Statechart Tools Standard Edition. Още веднъж следвайте инструкциите. След рестартиране успешно сте инсталирали YAKINDU Statechart Tools.

Стъпка 2: Първи стъпки с държавни машини в Code Composer Studio

Първи стъпки с държавни машини в Code Composer Studio
Първи стъпки с държавни машини в Code Composer Studio
Първи стъпки с държавни машини в Code Composer Studio
Първи стъпки с държавни машини в Code Composer Studio

За да използвате машините на състоянието, продължете нормално и създайте нов CCS проект. Отворете раздела Файл, отворете Ново и щракнете върху CCS Project. Определете име на проект, изберете вашия микроконтролер и създайте празен проект, който съдържа празен файл main.c. Използвах MSP430G2553.

Сега можете да започнете работа с държавни машини!

Щракнете с десния бутон върху проекта, отворете New и изберете Statechart Model. Ще се отвори съветник, в който можете да изберете вашия проект и да дадете име на вашата диаграма на състоянието. Например, наречете го blinkyStateMachine.sct.

Моделът Statechart ще се появи в папката на проекта след щракване върху Finish. Щракнете върху Да, ако бъдете помолени да промените перспективата.

Стъпка 3: Създайте Blinky State Machine

Създайте Blinky State Machine
Създайте Blinky State Machine

Сега можете да започнете да създавате диаграма на състоянието!

От лявата страна ще намерите така наречения раздел за дефиниция. Там можете да добавите текстови елементи към модела, например операции, които могат да бъдат извикани в машината на състоянието.

Изтрийте всичко от него и просто добавете тези три дефиниции на операции:

вътрешен:

операция init () операция redOn () операция redOff ()

След това преминете към модела на диаграмата на състоянията и добавете три състояния:

  • Инициализация
  • червен светодиод свети
  • червеният светодиод е изключен

Свържете състоянията, както е показано на снимката, и добавете преходите и действията за въвеждане. Можете да ги намерите отново на включената снимка.

Стъпка 4: Генерирайте State Machine C код

Генерирайте кода на State Machine C
Генерирайте кода на State Machine C

Сега е време да генерираме C-кода. За да направите това, трябва да се добави модел на генератор. Щракнете с десния бутон върху проекта още веднъж и отворете New и щракнете върху Model Generator Code. Изберете име за sgen-файла. Добра практика е да останете с името на държавната машина. Наречете го blinkyStateMachine.sgen и щракнете върху Напред. Изберете желания State Machine, като щракнете върху квадратчето за отметка. Уверете се, че сте избрали YAKINDU SCT C Code Generator (тъй като искаме да генерираме C-Code) и щракнете върху Finish.

Обикновено C-кодът ще бъде генериран автоматично, но ако не, можете да щракнете с десния бутон върху sgen -файла и да кликнете върху Generate Code Artefacts, за да го направите. Папките src и src-gen трябва да се появят във вашия проект. Те включват генерирания C-код, който автоматично ще се актуализира, когато редактирате и запишете диаграмата на състоянието.

Тъй като тази диаграма на състоянието използва събития, базирани на времето, трябва да се внедри услуга за таймер. За да подготвите това, имате нужда от тези два файла: sc_timer_service.c и sc_timer_service.h Можете да ги получите от GitHub или да ги изтеглите тук. Трябва да ги добавите в папката src.

Стъпка 5: Извикване на държавната машина от вашия код

И накрая, машината на състоянието може да се използва във вашата основна функция!

Първо, трябва да включите държавната машина и услугата таймер. След това машината на състоянието, услугата таймер и необходимите функции за услугата таймер трябва да бъдат декларирани и дефинирани. Освен това трябва да се изпълнят дефинираните операции, които включват и изключват червения светодиод.

#включва

#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine мигащ; #define MAX_TIMERS 4 статични sc_timer_t таймера [MAX_TIMERS]; статична sc_timer_service_t timer_service; //! реализация на обратно извикване за настройка на времеви събития extern void blinkyStateMachine_setTimer (BlinkyStateMachine* дръжка, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) {sc_timer_start (& timer_service, handle, evid, time_ms, periodic); } //! реализация на обратно повикване за отмяна на събития във времето. 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.

void main (void) {WDTCTL = WDTPW | WDTHOLD; // Спиране на таймера за наблюдение

// Таймер за стартиране и машина за състояния 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

#pragma vector = WDT_VECTOR _прекъсване на празнотата watchdog_timer (void) {_bic_SR_register_on_exit (LPM0_bits + GIE); }

Стъпка 6: Стартирайте проекта

Това е - Сега можете да изградите и качите програмата на вашия MSP430!

Надяваме се, че този урок ви помогна успешно да създадете проект за вашия MSP430. Сега е време да реализирате собствените си идеи!

За генериране на код, инструментите за диаграми на състоянието на YAKINDU са необходими като плъгин във вашето Studio Composer Studio.

Можете да получите сайта за актуализация тук! <

Той започва с 30 -дневна пробна версия. След това можете да получите безплатен лиценз за некомерсиална употреба!

Препоръчано: