MSP430 mit Zustandsautomaten programmieren in 5 Minuten
Robin Herrmann
3 Min. Lesezeit
In diesem Blog zeige ich dir, wie du Zustandsautomaten einfach in deinen MSP430-Projekten einsetzen kannst.
Wir starten mit einem einfachen Blink-Beispiel. Für dieses Beispiel verwenden wir das bekannte Code Composer Studio (CCS) zusammen mit dem integrierten itemis CREATE. Wie du in diesem Blog-Post sehen wirst, passen beide Entwicklungsumgebungen gut zusammen. Das vollständige Beispiel mit Installations- und Setup-Anleitung kann am Ende heruntergeladen werden.
Warum MSP430?
Der MSP430 ist ein 16-Bit-Mikrocontroller von Texas Instruments, der in der Industrie weit verbreitet und für energiesparende Embedded-Anwendungen konzipiert ist. Texas Instruments bietet mehrere LaunchPads für verschiedene MCUs an, um den Einstieg in die Entwicklung eingebetteter Systeme zu erleichtern. In unserem Beispiel verwenden wir das MSP-EXP430G2 LaunchPad. Jedes LaunchPad mit zwei LEDs reicht jedoch aus, um dieses einfache Beispiel auszuführen.
Warum Zustandsautomaten?
Zustandsautomaten sind ein bekanntes Konzept zur Modellierung reaktiver, ereignisgesteuerter Systeme. Wenn eine Anwendung mit der Zeit immer komplexer wird, ist ein gutes Software-Design entscheidend für die Lesbarkeit und Wiederverwendbarkeit des Quellcodes.
Es gibt verschiedene Ansätze, Zustandsautomaten manuell zu implementieren. In C setzt man sie üblicherweise mit switch/case oder einer Übergangstabelle um. Das manuelle Schreiben von Zustandsautomaten ist ein guter Weg, um die zugrundeliegenden Konzepte zu verstehen. Aber sobald man damit vertraut ist, schreibt man immer wieder denselben Boilerplate-Code – eine sehr zeitaufwändige, ineffiziente und fehleranfällige Aufgabe. Automatische Code-Generierung ist daher eine gute Wahl.
Ein Ansatz ist ein auf Microsoft Excel basierendes Code-Generierungswerkzeug von TI, eine Open-Source-Lösung, die für den MSP430 entwickelt wurde. Das ist ein pragmatischer Weg, aber wenn man Zustandsautomaten häufig in der Entwicklung einsetzt, vermisst man anspruchsvollere Werkzeugfunktionen wie einen grafischen Editor, Modellvalidierung und Simulation. Eine Alternative zur Excel-basierten Lösung ist itemis CREATE.
Warum itemis CREATE?
So lässt sich das einfache Blinky-Beispiel mit unserer Professional Edition realisieren:


Mit itemis CREATE Professional Edition kannst du bestehende Header-Dateien importieren. Das hat den Vorteil, dass du die vordefinierten Werte direkt in die verfügbaren Register eintragen kannst. Wenn der Zustandsautomat zum Beispiel den Zustand redOn betritt, wird die Entry-Aktion P1OUT |= BIT0 ausgeführt. Durch das Setzen von BIT0 im P1OUT-Register leuchtet die rote LED auf.
Zeitabhängige Events werden out of the box unterstützt, mit einer einfachen Implementierung eines Timing-Service, der mit dem Beispiel mitgeliefert wird. Dieser Timing-Service muss lediglich periodisch durch ein Hard- oder Software-Timing-Event ausgelöst werden, zum Beispiel durch den WDT.
Vollständig integriert in Code Composer Studio
itemis CREATE und Code Composer Studio basieren beide auf Eclipse. Daher kann itemis CREATE als Plugin in Code Composer Studio installiert werden. Du kannst dabei weiterhin alle Funktionen nutzen, die CCS bietet – Kompilieren, Hochladen und Debuggen deines Codes.

Das Hinzufügen von itemis CREATE als Plugin bietet mehrere Vorteile. Du kannst neue Projekte anlegen oder bestehende Projekte um einen Zustandsautomaten erweitern. Probier es einfach aus!
Wie bekomme ich es?
itemis CREATE als Plugin lässt sich ganz einfach über “Install New Software” in deinem Code Composer Studio installieren. Dazu musst du dich lediglich auf unserer Website registrieren und den Download-Link erhalten. Eine detaillierte Beschreibung, wie es funktioniert, ist im Beispiel enthalten.
Modellgetriebene Softwareentwicklung bei itemis — Grafische Zustandsautomat-Modellierung mit automatischer Code-Generierung: Modellgetriebene Softwareentwicklung →



