Top Banner
Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms Dieser Leitfaden soll eine Einführung in das Erstellen von Programmablaufplänen (kurz: PAP) geben. PAP erleichtern das Erstellen von (C-)Prorammen und den Prozess von der Idee zum Code strukturierter machen. Programmablaufpläne dienen als Orientierung, sowohl beim Implementieren des Codes als auch bei dessen Debugging. Das Vorgehen zum Erstellen eines lauffähigen C- Programms mit Hilfe von PAP kann in vier Schritte gegliedert werden: 1.) Design des Programmablaufs mit Hilfe von PAP 2.) Implementierung des Programmablaufs in C-Code 3.) Test und Debugging 4.) (Gegebenenfalls) Anpassung des PAP (zurück zu Schritt 1) Sollte sich nach Schritt Nr. 3 herausgestellt haben, dass das Programm nicht wie konzipiert funktioniert, sollte zu Schritt 1 zurückgekehrt werden, um den Programmablauf anzupassen und anschließend die Verbesserungen erneut in Code zu implementieren. Dieser Ablauf zur Progammerstellung lässt sich nun selbst beispielhaft als PAP realisieren, wie in der folgenden Abbildung zu sehen ist.
13

Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

Jun 19, 2019

Download

Documents

dongoc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

Programmablaufpläne

Vorgehen zur Erstellung eines lauffähigen C-Programms

Dieser Leitfaden soll eine Einführung in das Erstellen von Programmablaufplänen (kurz: PAP) geben.

PAP erleichtern das Erstellen von (C-)Prorammen und den Prozess von der Idee zum Code

strukturierter machen. Programmablaufpläne dienen als Orientierung, sowohl beim Implementieren

des Codes als auch bei dessen Debugging. Das Vorgehen zum Erstellen eines lauffähigen C-

Programms mit Hilfe von PAP kann in vier Schritte gegliedert werden:

1.) Design des Programmablaufs mit Hilfe von PAP

2.) Implementierung des Programmablaufs in C-Code

3.) Test und Debugging

4.) (Gegebenenfalls) Anpassung des PAP (zurück zu Schritt 1)

Sollte sich nach Schritt Nr. 3 herausgestellt haben, dass das Programm nicht wie konzipiert

funktioniert, sollte zu Schritt 1 zurückgekehrt werden, um den Programmablauf anzupassen und

anschließend die Verbesserungen erneut in Code zu implementieren.

Dieser Ablauf zur Progammerstellung lässt sich nun selbst beispielhaft als PAP realisieren, wie in der

folgenden Abbildung zu sehen ist.

Page 2: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

Die Elemente eines Programmablaufplans

Wie im vorherigen Beispiel zu sehen, bedient sich ein Programmablaufplan verschiedener grafischer

Elemente. Diese Elemente sind in der DIN 66001 standardisiert.

Start und Ende eines Programms

Der Start und das Ende eines Programms wird mit einem

Rechteck mit abgerundeten Ecken symbolisiert. Dieses Element

wird auch Terminator genannt. Terminatoren werden sowohl in

der main-Routine, als auch in anderen Funktionen verwendet. In

diesen Fällen symbolisieren sie den Anfang und das Ende der

aufgerufenen Funktion.

Verbindungen zwischen den Elementen

Die Verbindung zwischen den Elementen geschieht mit Hilfe von

Pfeilen. Ob hierbei Pfeile mit geschlossenem oder offenem Pfeil

genutzt werden, ist dem Nutzer freigestellt.

Ausführen einer Tätigkeit

Das Ausführen einer Tätigkeit wird mit einem Rechteck

symbolisiert. Dies beinhaltet einfache Tätigkeiten, jedoch nicht

das Aufrufen einer Funktion. Dies kann beispielsweise das Prüfen

eines vorher eingelesenen Wertes sein. Ebenso wird dieses

Symbol beispielsweise zum Initialisieren von Variablen oder der

Durchführung von Rechnungen genutzt.

Page 3: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

Ein- und Ausgabe

Um Ein- und Ausgaben klarer zu kennzeichnen, können diese mit abgeschrägten Rechtecken

dargestellt werden. In diesem Fall werden in der linken unteren Ecke Eingaben mit „E“ und Ausgaben

mit „A“ gekennzeichnet.

Funktionsaufruf

Innerhalb eines PAP können weitere Funktionen

aufgerufen werden. Diese Funktionsaufrufe

besitzen wiederum einen eigenen PAP. Um den

Aufruf einer Funktion vom Ausführen einer

Tätigkeit unterscheiden zu können, besitzt das

Symbol doppelte vertikale Linien. Nach dem

Wechsel in den PAP der aufgerufenen Funktion

wird dessen Programmablauf durchlaufen. Ist

diese beendet springt der Programmfluss zu dem

aufrufenden PAP zurück.

Zwischen den vertikalen Linien kann der Name

oder die Beschreibung der aufzurufenden

Funktion stehen. Diese Besonderheit dient der

Übersichtlichkeit zwischen den verschiedenen

Programmen.

Page 4: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

Datenfluss im PAP anhand von Beispielen

if-else-Verzweigungen

Eine Verzweigung wird mit Hilfe einer Raute modelliert werden. Von der Raute führen jeweils zwei

Pfeile weg. Ein Pfeil, falls die Bedingung der Verzweigung zu true evaluiert wird und ein Zweiter für

den Fall false. Es müssen immer beide Fälle modelliert werden müssen.

Ein Beispiel für eine Verzweigung wäre beispielsweise die if-Verzweigung. Der folgende PAP hat

zudem ein Code Snippet angefügt, wie eine äquivalente Umsetzung in C-Code aussehen könnte.

Page 5: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

else if-Verzweigungen

Die folgenden Grafiken zeigen den PAP im Falle einer else if-Verzweigung. Anhand der Pfeile wird

hier deutlich, dass im Falle einer erfolgreichen if-Verzweigung die else if-Verzweigung nicht mehr

ausgewertet wird.

Page 6: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

Verschachtelte if-Verzweigung

Das folgende Beispiel zeigt den Programmablauf bei dem Einsatz verschachtelter if-Verzweigungen.

Page 7: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

while-Schleife

Die while-Schleife ist eine kopfgesteuerte Schleife. Nach der Prüfung der Bedingung wird der

Schleifenrumpf entweder ausgeführt oder übersprungen. Im Falle einer erfolgreichen Evaluation

kehrt das Programm nach dem Ausführen des Inhalts wieder zur Kopfbedingung zurück und evaluiert

diese erneut.

Page 8: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

do-while-Schleife

Bei der do-while-Schleife wird der Schleifenrumpf ausgeführt bevor die Bedingung überprüft wird.

Die do-while-Schleife ist daher eine fußgesteuerte Schleife. Bei dieser Schleife wird somit der Rumpf

in allen Fällen mindestens einmal ausgeführt.

Page 9: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

for-Schleife

Die for-Schleife ist eine kopfgesteuerte Schleife. Eine for-Schleife nutzt eine Schleifenvariable. Nach

Prüfung der Bedingung wird der Schleifenrumpf entweder ausgeführt oder übersprungen. Nach

Durchlaufen des Schleifenrumpfs wird eine Schleifenvariable in- oder dekrementiert. Im Falle einer

erfolgreichen Evaluation kehrt das Programm nach dem Ausführen des Inhalts wieder zur

Kopfbedingung zurück und evaluiert diese erneut. Die Abbruchbedingung ist im Regelfall das

Erreichen eines Grenzwertes der Schleifenvariable.

Das folgende Code-Snippet zeigt den Code einer simplen for-Schleife mit der äquivalenten

Implementierung als while-Schleife.

Page 10: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

Inbetriebnahme PAP-Designer

Das für die Erstellung der hier gezeigten PAP wurde der PapDesigner genutzt. Dieser ist für private

Nutzung kostenlos unter folgender Adresse zu beziehen:

http://friedrich-folkmann.de/papdesigner/Hauptseite.html

Natürlich können PAP auch mit Hilfe von Tools wie Microsoft Visio oder Inkscape erstellt werden. Der

PapDesigner bietet jedoch eine unkomplizierte Möglichkeit dies ohne größere Vorarbeiten zu tun.

Page 11: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

Programmablaufpläne Übung

Erstellen eines PAP

Diese Übung basiert auf der Aufgabe A2 im Abschnitt 5.4 aus dem Buch Embedded Programming –

Basiswissen und Anwendungsbeispiele der Infineon XC800-Familie von Prof. Dr.-Ing. Reiner Kriesten.

Aufgabe 1.)

Erstellen Sie den PAP für die main-Funktion.

Page 12: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

Verteiltes Arbeiten mit mehreren Modulen und deren Ablaufpläne

Übung: Stoppuhr

Diese Übung basiert auf der Aufgabe A2 im Abschnitt 10.7 aus dem Buch Embedded Programming –

Basiswissen und Anwendungsbeispiele der Infineon XC800-Familie von Prof. Dr.-Ing. Reiner Kriesten.

Aufgabe 1.)

Lesen Sie die Aufgabenstellung und bestimmen Sie die Anzahl der notwendigen PAPs um das zu

erstellende Programm zu modellieren. Nennen Sie zudem den Abschnitt des Programms, den der

jeweilige PAP modelliert. Hinweis: Das Update der 7-Segment-Anzeige ist ein separater PAP und

muss in dieser Übung nicht erstellt werden

Aufgabe 2.)

Was ist der Unterschied zwischen dem PAP einer Interrupt Service Routine (ISR) und der eines

Funktionsaufrufs?

Aufgabe 3.)

Der folgende PAP zeigt die main-Funktion der Stoppuhr. In ihm sind einige Blöcke des PAPs jedoch

entfernt und mit Platzhaltern ersetzt. Zeichnen Sie die fehlenden Blöcke und nummerieren Sie diese.

Page 13: Vorgehen zur Erstellung eines lauffähigen C-Programmskrre0001/MCT_Labor/PAP_Tutorial_und_Uebung.pdf · Programmablaufpläne Vorgehen zur Erstellung eines lauffähigen C-Programms

Aufgabe 4.)

Der folgende PAP zeigt das Skelett der ISR Timer 0. Vervollständigen Sie den PAP zwischen den Start-

und Endpunkten. Der benötigte Code zur Lösung der Aufgabe ist nebenan abgedruckt.