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.

Parameterübergabe-Emulator.flv

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 .]

weitere Videos

Oktober 29, 2010

Juni 15, 2010

Juni 7, 2011

Februar 1, 2010

Juli 17, 2011

Oktober 31, 2012

>