Spisu treści:

Maszyna skończona na MSP430: 6 kroków
Maszyna skończona na MSP430: 6 kroków

Wideo: Maszyna skończona na MSP430: 6 kroków

Wideo: Maszyna skończona na MSP430: 6 kroków
Wideo: KNŻ - Las maquinas de la muerte [OFFICIAL VIDEO] 2024, Lipiec
Anonim
Maszyna skończona na MSP430
Maszyna skończona na MSP430
Maszyna skończona na MSP430
Maszyna skończona na MSP430

Pokażę Ci, jak zaprogramować Launchpad MSP430G2 za pomocą Finite State Machine (FSM) za pomocą YAKINDU Statechart Tools bezpośrednio w Texas Instruments Code Composer Studio.

Ten samouczek zawiera sześć kroków:

  1. Instalowanie YAKINDU Statechart Tools jako wtyczki do Code Composer Studio
  2. Pierwsze kroki z automatami stanowymi w Code Composer Studio
  3. Stwórz Blinky State Machine
  4. Wygeneruj kod State Machine C
  5. Dzwonienie do maszyny stanowej z twojego kodu
  6. Uruchom projekt!

Ten projekt może być użyty jako plan dla dowolnego MPS430 lub MSP432!

Kieszonkowe dzieci

Oprogramowanie:

  • Narzędzia wykresów stanu YAKINDU
  • Zintegrowane środowisko programistyczne (IDE) Code Composer Studio (CCS)

Sprzęt komputerowy:

Zestaw rozwojowy LaunchPad MSP430G2

Krok 1: Instalowanie narzędzi YAKINDU Statechart jako wtyczki do Code Composer Studio

Instalowanie narzędzi YAKINDU Statechart jako wtyczki do Code Composer Studio
Instalowanie narzędzi YAKINDU Statechart jako wtyczki do Code Composer Studio
Instalowanie narzędzi YAKINDU Statechart jako wtyczki do Code Composer Studio
Instalowanie narzędzi YAKINDU Statechart jako wtyczki do Code Composer Studio
Instalowanie narzędzi YAKINDU Statechart jako wtyczki do Code Composer Studio
Instalowanie narzędzi YAKINDU Statechart jako wtyczki do Code Composer Studio

Najpierw musisz zainstalować Code Composer Studio firmy TI. Raz z powodzeniem przetestowałem konfigurację z CCS w wersji 9.2 i starszej. Link do pobrania znajdziesz tutaj:

Pobierz CCS

Kliknij, aby pobrać i upewnij się, że podczas instalacji wybrałeś przynajmniej mikrokontrolery MSP430 o bardzo niskim poborze mocy. W międzyczasie możesz pobrać stronę aktualizacji dla narzędzi YAKINDU Statechart Tools. Iść do:

Pobierz narzędzia wykresów stanu YAKINDU

Na tej stronie kliknij Pobierz teraz i postępuj zgodnie z instrukcjami. Jak widać na zdjęciu: Jest bezpłatny do użytku niekomercyjnego. Po rejestracji otrzymasz przegląd opcji pobierania. Kliknij STANDARDOWA STRONA POBIERANIA i kliknij ZAINSTALUJ Z WITRYNY AKTUALIZACJI. Znajdziesz tam link w sekcji Wydania stabilne. Chwyć ten link i zapisz go lub umieść w schowku.

Instalacja narzędzi YAKINDU Statechart Tools w Code Composer Studio może być nieco trudna, w zależności od używanej wersji Code Composer Studio. Być może te kroki są w międzyczasie nieaktualne - jednak: nie wahaj się zapytać mnie w komentarzach, czy potrzebujesz pomocy.

Oto moje kroki:

Po pomyślnym zainstalowaniu CCS w systemie otwórz kartę Pomoc i kliknij Zainstaluj nowe oprogramowanie… W tym kreatorze dodaj następującą witrynę aktualizacji za pomocą przycisku Dodaj…:

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

Nie dodawaj niczego, po prostu trzeba to rozwiązać. Widać to na zdjęciu.

Następnie powtórz kroki i kliknij przycisk Dodaj…. Wstaw witrynę aktualizacyjną YAKINDU Statechart Tools, którą, miejmy nadzieję, zapisałeś. Następnie zaznacz pole wyboru YAKINDU License Management i kliknij Dalej. Postępuj zgodnie z instrukcją. Twoje IDE może raz uruchomić się ponownie.

Na koniec możesz zainstalować narzędzia YAKINDU Statechart. Powtórz ostatnie kroki, ale tym razem wybierz YAKINDU Statechart Tools Standard Edition. Ponownie postępuj zgodnie z instrukcjami. Po ponownym uruchomieniu pomyślnie zainstalowałeś YAKINDU Statechart Tools.

Krok 2: Pierwsze kroki z automatami stanowymi w Code Composer Studio

Pierwsze kroki z automatami stanowymi w Code Composer Studio
Pierwsze kroki z automatami stanowymi w Code Composer Studio
Pierwsze kroki z automatami stanowymi w Code Composer Studio
Pierwsze kroki z automatami stanowymi w Code Composer Studio

Aby korzystać z automatów stanowych, postępuj normalnie i utwórz nowy projekt CCS. Otwórz zakładkę Plik, otwórz Nowy i kliknij Projekt CCS. Zdefiniuj nazwę projektu, wybierz swój mikrokontroler i utwórz pusty projekt, który zawiera pusty plik main.c. Użyłem MSP430G2553.

Teraz możesz rozpocząć pracę z automatami stanowymi!

Kliknij projekt prawym przyciskiem myszy, otwórz Nowy i wybierz Model wykresu stanów. Otworzy się kreator, w którym możesz wybrać swój projekt i nazwać swój diagram stanu. Na przykład nazwij to blinkyStateMachine.sct.

Model Statechart pojawi się w folderze projektu po kliknięciu przycisku Zakończ. Kliknij Tak, jeśli zostaniesz poproszony o zmianę perspektywy.

Krok 3: Stwórz Blinky State Machine

Stwórz Blinky State Machine
Stwórz Blinky State Machine

Teraz możesz rozpocząć tworzenie mapy stanu!

Po lewej stronie znajdziesz tak zwaną sekcję definicji. Tam możesz dodać do modelu elementy tekstowe, na przykład operacje, które można wywołać w maszynie stanów.

Usuń z niego wszystko i po prostu dodaj te trzy definicje operacji:

wewnętrzny:

operacja init() operacja redOn() operacja redOff()

Następnie przejdź do modelu wykresu stanów i dodaj trzy stany:

  • Inicjalizacja
  • czerwona dioda LED włączona
  • czerwona dioda zgaszona

Połącz stany, jak pokazano na obrazku i dodaj przejścia i akcje wejścia. Możesz je ponownie znaleźć na załączonym obrazku.

Krok 4: Wygeneruj kod maszyny stanowej C

Wygeneruj kod C maszyny stanowej
Wygeneruj kod C maszyny stanowej

Teraz nadszedł czas na wygenerowanie kodu C. Aby to zrobić, należy dodać model generatora. Ponownie kliknij prawym przyciskiem myszy projekt i otwórz Nowy i kliknij Model generatora kodu. Wybierz nazwę pliku sgen. Dobrą praktyką jest pozostanie przy nazwie automatu stanów. Nazwij to blinkyStateMachine.sgen i kliknij Dalej. Wybierz żądany automat stanowy, klikając pole wyboru. Upewnij się, że wybrałeś Generator kodu YAKINDU SCT C (ponieważ chcemy wygenerować kod C) i kliknij Zakończ.

Zwykle kod C zostanie wygenerowany automatycznie, ale jeśli nie, możesz kliknąć plik sgen prawym przyciskiem myszy i kliknąć opcję Generuj artefakty kodu, aby to zrobić. W twoim projekcie powinny pojawić się foldery src i src-gen. Zawierają wygenerowany kod C, który zostanie automatycznie zaktualizowany podczas edycji i zapisywania schematu stanu.

Ponieważ ten schemat stanu używa zdarzeń opartych na czasie, należy zaimplementować usługę czasomierza. Aby to przygotować, potrzebujesz tych dwóch plików: sc_timer_service.c i sc_timer_service.h Możesz je pobrać z GitHub lub pobrać tutaj. Musisz je dodać do folderu src.

Krok 5: Wywołanie maszyny stanowej z kodu

Wreszcie maszyna stanowa może być używana w głównej funkcji!

Najpierw musisz dołączyć maszynę stanów i usługę timera. Następnie należy zadeklarować i zdefiniować automat stanowy, usługę timera i wymagane funkcje dla usługi timera. Dodatkowo należy wykonać zdefiniowane operacje, które włączają i wyłączają ponownie czerwoną diodę.

#włączać

#include "src-gen/BlinkyStateMachine.h" #include "src/sc_timer_service.h" BlinkyStateMachine blinky; #define MAX_TIMERS 4 statyczne timery sc_timer_t[MAX_TIMERS]; statyczny sc_timer_service_t timer_service; //! implementacja wywołania zwrotnego do ustawiania zdarzeń czasowych extern void blinkyStateMachine_setTimer(BlinkyStateMachine* handle, const sc_eventid evid, const sc_integer time_ms, const sc_boolean periodic) { sc_timer_start(&timer_service, handle, evid, time_ms, periodic); } //! implementacja wywołań zwrotnych do anulowania zdarzeń czasowych. extern void blinkyStateMachine_unsetTimer(uchwyt BlinkyStateMachine*, const sc_eventid evid) { sc_timer_cancel(&timer_service, evid); } //! definiowanie operacji extern void blinkyStateMachineInternal_init(const BlinkyStateMachine* handle) { WDTCTL = WDT_MDLY_32; IE1 |= WDTIE; P1DIR |= BIT0; } extern void blinkyStateMachineInternal_redOn(const BlinkyStateMachine* handle) { P1OUT |= BIT0; } extern void blinkyStateMachineInternal_redOff(const uchwyt BlinkyStateMachine*) { P1OUT &= ~BIT0; }

Główna funkcja składa się z dwóch części:

Inicjalizacja i funkcja enter automatu stanów oraz inicjalizacja timera.

Druga część to nieskończona pętla - pętla while(1). W tej pętli wywoływana jest funkcja cyklu uruchamiania automatu stanów. Następnie MSP430 zostanie przełączony w tryb niskiego poboru mocy 0 i zostanie ustawiony bit General Interrupt Enable. Teraz mikrokontroler śpi i czeka na przerwanie. Po przerwaniu WDT zegar będzie kontynuowany. Oznacza to, że każdy zegar jest aktualizowany, a czas, który upłynął, jest zwiększany o 32 - czas w milisekundach, który następuje po każdym przerwaniu WDT.

void main(void) { WDTCTL = WDTPW | WDTHOLD; // Zatrzymaj zegar nadzoru

// Inicjowanie licznika czasu i maszyny stanów sc_timer_service_init(&timer_service, timers, MAX_TIMERS, (sc_raise_time_event_fp) &blinkyStateMachine_raiseTimeEvent); blinkyStateMachine_init(&blinky); blinkyStateMachine_enter(&blinky);

gdy (1)

{ // wywołaj maszynę stanów co 32 ms blinkyStateMachine_runCycle(&blinky); _bis_SR_register(LPM0_bitów + 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); }

Krok 6: Uruchom projekt

To wszystko - teraz możesz zbudować i przesłać program do swojego MSP430!

Mamy nadzieję, że ten samouczek pomógł ci pomyślnie stworzyć projekt dla twojego MSP430. Teraz czas na realizację własnych pomysłów!

Do generowania kodu, YAKINDU Statechart Tools jest wymagany jako wtyczka w twoim Code Composer Studio.

Możesz pobrać stronę aktualizacji tutaj! <

Zaczyna się od 30-dniowej wersji próbnej. Następnie możesz otrzymać bezpłatną licencję do użytku niekomercyjnego!

Zalecana: