Forum: Mikrocontroller und Digitale Elektronik PAP von AVR-C-Code für Bachelorarbeit


von Martin (Gast)


Lesenswert?

Hi

wie erstellt ihr Programmablaufpläne eines AVR-C-Programms für 
Dokumentationen?

Ist es sinnvoll so einen PAP in Bachelorarbeit einzusetzen??

Was haltet ihr vom PAP Designer? Oder gibt es mittlerweile eine bessere 
Alternative?

Gruß Martin

von ..,- (Gast)


Lesenswert?

PAP-Designer gibt's wie Sand am Meer ... bzw. lassen sich viele dazu 
missbrauchen.

Martin schrieb:
> Ist es sinnvoll so einen PAP in Bachelorarbeit einzusetzen??
Natürlich! Wenn du den Code selber geschrieben hast, dann sollte das 
Erstellen auch schnell von der Hand gehen.

von Linus (Gast)


Lesenswert?

Für jede trivialität gibts heutzutage Programme. Neumodisch "Designer" 
genannt. Zu meiner Zeit haben wir etwas so triviales mit der Hand auf 
Papier gezeichnet und gut wars. Bleistift, Papier und Gehirnschmalz, 
mehr war dazu nicht nötig. Heutzutage können die Leute aber wohl ohne 
Softwareunterstützung nicht mal mehr aufs Klo gehen.

von fdssd (Gast)


Lesenswert?

PAP kann man  bedenkenlos mit einbauen

wichtig ist aber das die dinger nicht auf jeder seite sind und quasi 
Text verdrängen/ersetzen.

mit welchem Programm ist egal .. wichti ist das es nach NORM gemacht 
wird
auf son mist achten die Profs dann auch mal ^^

von Karl H. (kbuchegg)


Lesenswert?

Linus schrieb:

> Softwareunterstützung nicht mal mehr aufs Klo gehen.


Da gibts sicher eine App dafür.

von Martin (Gast)


Lesenswert?

Ok danke euch. Werde den PAP-Designer nehmen, der macht einen simplen 
Eindruck und die Pläne sehen professionell aus.

@Linus: naja ich hätte mit der Handzeichnung auch kein Problem, aber das 
will in einer schriftlichen Arbeit / Dokumentation keiner mehr sehen.

Allgemeine PAP habe ich mir jetzt schon ein paar Beispiele angeschaut, 
aber gehören bei einem AVR-Code auch Includes, Defines, 
Funktionsprototypen oder Variablendeklarationen in so einem Plan?

von GroberKlotz (Gast)


Lesenswert?

Linus schrieb:
>       Datum: 25.02.2012 09:47
>       Für jede trivialität gibts heutzutage Programme. Neumodisch "Designer"
> genannt. Zu meiner Zeit haben wir etwas so triviales mit der Hand auf
> Papier gezeichnet und gut wars. Bleistift, Papier und Gehirnschmalz,
> mehr war dazu nicht nötig. Heutzutage können die Leute aber wohl ohne
> Softwareunterstützung nicht mal mehr aufs Klo gehen.

Hallo Linus
Dieses Forum wird mehr und mehr von Gehässigkeit und Häme durchsetzt. 
Warum hältst Du nicht einfach das Maul?

nix für ungut
GroberKlotz

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Linus schrieb:
>
>> Softwareunterstützung nicht mal mehr aufs Klo gehen.
>
> Da gibts sicher eine App dafür.

http://ruthe.de/index.php?pic=1600

von fdssd (Gast)


Lesenswert?

Martin schrieb:
> Allgemeine PAP habe ich mir jetzt schon ein paar Beispiele angeschaut,
> aber gehören bei einem AVR-Code auch Includes, Defines,
> Funktionsprototypen oder Variablendeklarationen in so einem Plan?

der C- code gehört nicht an diese stelle

der PAP zeigt das problem bzw der lösungssablauf
wie das implementiert ist ist dabei total egal

http://de.wikipedia.org/wiki/Programmablaufplan
PAP ist meist sehr universell gehalten

von Karl H. (kbuchegg)


Lesenswert?

Martin schrieb:

> Allgemeine PAP habe ich mir jetzt schon ein paar Beispiele angeschaut,
> aber gehören bei einem AVR-Code auch Includes, Defines,
> Funktionsprototypen oder Variablendeklarationen in so einem Plan?


Dir ist klar, was der Sinn und Zweck eines PAP ist?

Nämlich: Einen Ablauf, den Algorithmus zu dokumentieren. Bei einem PAP 
geht es um das Funktionsprinzip und nicht darum, wie man das in einer 
Programmiersprache umsetzt.

Klar muss es auch bei einem PAP gewisse Regeln geben, aber formale 
Regeln einer Programmiersprache haben bewusst da drinnen nix verloren. 
Wenn du einfach nur deinen Code hernimmst und ein paar Rechtecke um 
Codeblöcke drum herum zeichnest, hast du das Konzept 'PAP' nicht 
wirklich verstanden und wozu man eines macht.

von PAP (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Dir ist klar, was der Sinn und Zweck eines PAP ist?
>
> Nämlich: Einen Ablauf, den Algorithmus zu dokumentieren. Bei einem PAP
> geht es um das Funktionsprinzip und nicht darum, wie man das in einer
> Programmiersprache umsetzt.

Du kannst einen PAP auf jeder Abstraktionsebene zur Darstellung eines 
Ablaufs im Programm verwenden ...

Karl Heinz Buchegger schrieb:
> Klar muss es auch bei einem PAP gewisse Regeln geben, aber formale
> Regeln einer Programmiersprache haben bewusst da drinnen nix verloren.

... und je nach Abstraktionsebene, können natürlich (oder müssen sogar) 
auch Regeln der zur Implementierung verendeten Programmiersprache 
verwendet werden.

von Karl H. (kbuchegg)


Lesenswert?

PAP schrieb:

> ... und je nach Abstraktionsebene, können natürlich (oder müssen sogar)
> auch Regeln der zur Implementierung verendeten Programmiersprache
> verwendet werden.


Kannst du ein sinnvolles Beispiel nennen, bei dem ein 
Funktionsprototyp in einem PAP auftauchen muss?

von Martin (Gast)


Lesenswert?

Hm...ich hatte mir das eigentlich so gedacht, dass ich den C-Code in 
meiner Arbeit anschaulich und vereinfacht mit so einem PAP darstellen 
will, damits jeder sofort versteht. Weil der eigentliche C-Code ja nur 
in den Anhang gehört.

Also wenn ich euch jetzt richtig verstanden habe, gehe ich nicht auf 
jede Funktion im C-Code ein.

Ich hatte jetzt angefangen mit: Timer1 initialisieren -> Ein-/ Ausgänge 
initialisieren -> SPI Initialisieren -> Schleife{Ausgabe: } -> usw.

Habe ich hier einen riesigen Denkfehler? Sind die Initialisierungen gar 
nicht relevant bei der Darstellung?

Also soll es nur einen ganz groben Ablauf darstellen?!

von Karl H. (kbuchegg)


Lesenswert?

Martin schrieb:

> Ich hatte jetzt angefangen mit: Timer1 initialisieren -> Ein-/ Ausgänge
> initialisieren -> SPI Initialisieren -> Schleife{Ausgabe: } -> usw.
>
> Habe ich hier einen riesigen Denkfehler? Sind die Initialisierungen gar
> nicht relevant bei der Darstellung?

Natürlich sind sie es.

> Also soll es nur einen ganz groben Ablauf darstellen?!

Das kommt drauf an, was du mit deinem Betreuer ausgemacht hast!
Mit dem legst du fest, bis auf welche Ebene du die Dinge in einem PAP 
dokumentierst.

Wenn du bei mir deine Arbeit schreibst, dann würde die Vorgabe lauten: 
In einem PAP will ich in erster Linie das angewendete Verfahren, den 
Algorithmus erkennen können und dort die Richtigkeit des gewählten 
Verfahrens nachvollziehen können. Nicht jedoch seine technische 
Umsetzung.


      LED Port Pin auf Ausgang setzen
          |
+-->  LED einschalten
|         |
|     500 Millisekunden warten
|         |
|     LED ausschalten
|         |
|     500 Millisekunden warten
|         |
+---------+

wäre für mich ein perfektes PAP für ein Programm, welches eine LED mit 
1Hz blinken lassen soll. Die wesentlichen algorithmischen Teile sind 
darin enthalten.

Ob du die LED am PORTB - Pin B0 oder wo anders anschliesst, welche 
Anweisung genau du benutzt um die LED einzuschalten, ob die LED 
eingeschaltet wird, indem du den Portpin auf 0 oder auf 1 setzen musst, 
das alles sind für MICH Implementierungsdetails, die ICH in einem PAP 
nicht sehen will, weil sie mich vom wesentlichen, nämlich dem Prinzip 
mit dem du das Blinken implementierst, ablenken.

Wenn ich das sehen will, dann sehe ich mir den Programmcode an.

Implementierst du die Blinkerei mit einem Timer, dann will ich das 
natürlich auch in einem PAP sehen können. Das kann dann eben aus 2 
Teilen bestehen: Dem Hauptprogramm und einem nebenläufigen PAP für die 
Timer-ISR (wenn du eine ISR dazu benutzt).
Oder es kann natürlich auch ganz anders aussehen, wenn du den Timer die 
Arbeit machen lässt.

Aber für MICH ist in erster Linie der Algorithmus das, worauf ich mich 
in einem PAP konzentriere. Dinge wie Datentypen oder Funktionsprototypen 
sind mir dort egal.

von Christian B. (casandro)


Lesenswert?

PAPs sind eigentlich eher für unstrukturierte Programmiersprachen. Für C 
ist es sinnvoller, ein Nassi-Shneiderman-Diagramm zu verwenden. Das 
kannst du auch ganz einfach in Tex machen.
http://de.wikipedia.org/wiki/Nassi-Shneiderman-Diagramm
Das macht auch mehr Eindruck :)

Wenn es Dir, beispielsweise für den Anhang, um eine saubere 
Dokumentation des Programms geht, mach folgendes:
Du teilst jede Doppelseite in 3 Bereiche auf. Zum einen hast Du die 
Beschreibung, was das Programmstück macht, welche Daten es verarbeitet, 
etc. Dann hast Du das Nassi-Shneiderman-Diagramm, und dann daneben den 
Code. Eventuell noch einen 4. Bereich mit dem erstellten Assemblercode. 
Die NASA macht das so in ihren Softwareprojekten, denn da ist es 
wichtig, dass das Zeug läuft.

Aber nochmal, so was gehört in der Regel in den Anhang. Es sei denn, Du 
hast einen wichtigen schlauen Algorithmus, auf dem die Arbeit basiert. 
Den kannst Du dann auch im Text und ausführlicher behandeln.

von Oliver (Gast)


Lesenswert?

Martin schrieb:
> aber gehören bei einem AVR-Code auch Includes, Defines,
> Funktionsprototypen oder Variablendeklarationen in so einem Plan?

Kommt drauf an. Ich würde den prinzipiellen Programmaufbau in einen PAP 
packen, die Einzelmodule aber mit doxygen dokumentieren.

Oliver

von Ottmar K. (wil1)


Angehängte Dateien:

Lesenswert?

So könnte ein "PAP" aussehen (nur als Beispiel!)
Download "PAP-Designer":
[http://www.gso-koeln.de/papdesigner/Download.html]

Gruss Ottmar

von PAP (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Kannst du ein sinnvolles Beispiel nennen, bei dem ein
> Funktionsprototyp in einem PAP auftauchen muss?

Der Funktionsprototyp ist nichts anderes als die Signatur einer 
Funktion. Spontan fällt mir z. B. eine Schnittstellen- / Plugin-Funktion 
ein, die in einem PAP auftauchen könnte.

von Martin (Gast)


Angehängte Dateien:

Lesenswert?

So, danke nochmal für alle eure Tips und Vorschläge..

Hab im Anhang mal ein Bild, wie ich es gemacht habe. Der PAP-Designer 
ist wirklich spitze:-)

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Welchen Detailgrad man darstellt hängt von der Zielgruppe und allgemein 
dem Ziel ab. Bei sowas wie einer Bachelorarbeit würde ich die 
Professoren nicht großartig mit Implementierungsdetails langweilen. 
Lieber sich im Text mit Algorithmen und ingenieurwissenschaftlichen 
Überlegungen wichtig machen.

Wenn allerdings mangels möglicher "wissenschaftlicher Überhöhung" 
wirklich Masse vor Klasse angesagt ist, dann würde ich den ganzen 
Sourcecode durch doxygen jagen. Das gibt zwar keine PAPs, aber viele 
Seiten und Diagramme (wenn The Dot installiert ist).

von Olle Kammelle (Gast)


Lesenswert?

Hannes Jaeger schrieb:
> Wenn allerdings mangels möglicher "wissenschaftlicher Überhöhung"
> wirklich Masse vor Klasse angesagt ist, dann würde ich den ganzen
> Sourcecode durch doxygen jagen. Das gibt zwar keine PAPs, aber viele
> Seiten und Diagramme (wenn The Dot installiert ist).

Die Diagramme sind wirklich nicht gut für die schriftliche Ausarbeitung. 
Allerdings finde ich es für die eigentliche Dokumentation (z.B. für 
einen Nachfolger o.ä.) sehr hilfreich. Evtl. wird ja auch noch eine CD 
mit dem Sourcecode mit abgegeben? Dann finde ich die Doku mit doxygen in 
Ordnung, weil man dann mit ein paar Mausklicks sich durch den Quellcode 
hangeln kann.

Grüße

von Ottmar K. (wil1)


Lesenswert?

@Martin
freut mich, dass mein Tip bei Dir gut angekommen ist
mfG Ottmar

von Linus (Gast)


Lesenswert?

GroberKlotz schrieb:
> Warum hältst Du nicht einfach das Maul?

Hast gerade gefehlt als in der Schule das Thema "Höflichkeit" dran war, 
oder?

> Dieses Forum wird mehr und mehr von Gehässigkeit und Häme durchsetzt.

Das hat nichts mit Gehässigkeit oder Häme zu tun. Nur ist es heutzutage 
wohl leider die Regel nicht mehr zuerst selber nachzudenken sondern 
gleich nach einer App zu fragen. Heutzutage gelten nur zwei Dinge: Geiz 
ist geil und für alles gibts ne App...

von Martin (Gast)


Lesenswert?

@Linus: da muss ich dir zustimmen, dass man es sich mit Apps ziemlich 
einfach macht. Der Vorteil ist ja heutzutage gerade, dass man hier eher 
mal einen oder die ganze Community fragen kann. Früher ging das nicht so 
einfach und man musste sich eher mal selber einen Kopf machen und 
Stunden oder Tag lang drüber grübeln und probieren.

Aber heutzutage ist es auch oftmals stressiger, als früher und da ist es 
Klasse wenn man sich das Leben mit einer "App" nen bisl leichter machen 
kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.