Kostenloser Elektrotechnik VIDEO-Kurs


Grundlagen der Elektrotechnik, Gleichstromnetze und Berechnungsverfahren
Wechselstrom- und Drehstromnetze, elektrische Maschinen und Regelungstechnik
Digitaltechnik, Mikrocontrollertechnik und C-Programmierung


Funktionen in C, Parameterübergabe


In der letzten Folge hatte ich bereits erläutert, wie Compiler und Linker und anschließend auch das Zielsystem, der Mikrocontroller selbst, mit Variablen umgeht, also wo Variablen gespeichert werden.

Dieses Wissen hilft nun, beim Aufruf von Funktionen. Vor allem wenn es darum geht, den aufzurufenden Funktionen Parameter zu übergeben.

Da das heutige Video etwas lang geworden wäre, habe ich es in 2 Teile aufgeteilt.

Im ersten Video zeige ich den prinzipiellen Funktionsaufruf und die Parameterübergabe sozusagen als Trockenübung.

Im zweiten Video werde ich dann wieder die Entwicklungsumgebung an und zeige den Funktionsaufruf am System.

Alles geht über den Stack

Wenn es sich vermeiden lässt, globale Variablen für die Kommunikation zwischen unterschiedlichen Funktionen zu nehmen, nutzt man lokale Variablen. Da lokale Variablen eine begrenzte Sichtbarkeit und eine begrenzte Gültigkeitsdauer haben, können Programme so besser strukturiert werden.

Die Variablen für die Parameterübergabe von Funktion zu Funktion werden also über den Stack übergeben.

Im zweiten Video zeige ich die Implementierung des Funktionsaufrufes in der Entwicklungsumgebung und, am Ende des Videos, die Deklarationen von Funktionen, wenn Parameter mit übergeben werden sollen.



Nun bist Du wieder an der Reihe …

Heute gibt es wieder – endlich ;-) – eine Hausaufgabe.

Die heutige Hausaufgabe besteht aus drei Funktionen. Und zwar sollen zum einen für einen Kreis der Umfang und der Flächeninhalt berechnet werden. Zudem soll für einen Zylinder das Volumen berechnet werden.

Radius und Höhe sollen über den PORT 1 (Radius) und PORT 2(Höhe) eingegeben werden können. Der Einfachheit halber soll alles in der Grundeinheit m angegeben werden.

Die Besonderheit bei der Berechnung des Volumens für den Zylinder besteht darin, dass zur Berechnung der Grundfläche des Zylinders die vorher definierte Funktion genutzt werden soll.

Also:

Programmiere die Funktionen

  • int umfang (int radius)
  • int flaeche (int radius)
  • int volumen(int radius, int hoehe)

wobei in der Funktion volumen() die Funktion flaeche() genutzt werden soll.

Zu Beginn von main() sollen radius und hoehe über die Ports P1 und P2 eingelesen werden.

Am Ende von main sollen Umfang, Fläche und Volumen ausgegeben werden.

Hinweis:
Für unsere Übung reichen grobe Werte. Wir nehmen für PI = 3

Und zur Erinnerung ein paar Formeln:

  • U=2*PI*radius
  • A=Pi*radius²
  • V=A*hoehe

Bis zum nächsten Mal!

Dieser Artikel ist Teil des Mikrocontroller-Kurses auf ET-Tutorials.de.
[ >> Hier geht es zurück zur Übersichtsseite des Mikrocontroller-Kurses .]

Elektrotechnik muss nicht kompliziert sein.
Deshalb gibt es VIDEO-Tutorials.

Hat Dir der Artikel geholfen? - Dann hilf dem Artikel ;-)

Funktionen in C, Parameterübergabe:
1 Star2 Stars3 Stars4 Stars5 Stars
5,00 von 5 Punkten, basieren auf 1 abgegebenen Stimmen.
Stimme jetzt ab ! (auf die Sternchen klicken)
Loading ... Loading ...


Fragen und Antworten zu diesem Artikel und zu anderen Themen findest Du im ET-Tutorials Forum

Ähnliche Artikel

Folgende Artikel aus der gleichen Kategorie könnten Dich ebenfalls interessieren:

Lösung der Übungsaufgabe zu Funktionen In den vergangenen Artikeln bin ich auf die Behandlung von Funktionen und das Thema Parameterübergab...

Arrays In den vergangenen Folgen ging es ja schon um die Optimierung der Programmierung für unsren Kaffeeau...

Funktionen in C, Globale und lokale Variablen Was wären Funktionen doch langweilig, wenn sie immer nur das gleiche machen würden. Um Programme eff...

Funktionen in C, Definition und Deklaration Durch die Verwendung von Funktionen kann man Programme strukturieren und effizienter machen. In unse...

Lösung für eine Funktion zur Münzeingabe Im heutigen Artikel möchte ich eine mögliche Lösung für die Aufgabe aus dem letzten Artikel, nämlich...