Zum Hauptinhalt springen

MSP430 mit Zustandsautomaten programmieren in 5 Minuten

Robin Herrmann Robin Herrmann 3 Min. Lesezeit
MSP430 mit Zustandsautomaten programmieren in 5 Minuten

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:

Blinky-Beispiel in itemis CREATE

Blinky-Beispiel in itemis CREATE

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.

itemis CREATE integriert in Code Composer Studio

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 →

Robin Herrmann

Software Engineer

Robin Herrmann arbeitet seit 2018 als Software Engineer bei itemis in Lünen. Er hat einen Master-Abschluss in Informations- und Elektrotechnik und interessiert sich besonders für die Entwicklung eingebetteter Systeme. Sein Fokus liegt auf der Weiterentwicklung von itemis CREATE, um die Unterstützung für die Embedded-Entwicklung weiter zu verbessern – von der Modellierung von Zustandsautomaten bis zur Codegenerierung für Mikrocontroller. Über seine Erfahrungen aus der Praxis schreibt er im itemis Blog.