In dieser Aufgabe wird das Lauflicht mit einer Zeitverzögerungsfunktion programmiert.
L1
– L6
programmiert wird. Dabei sollen die Funktion void DelayMS200( void )
ohne Rück- und Übergabeparameter zum Einsatz kommen, die eine exakte Zeitverzögerung von 200 ms erzeugt.
Hinweis: Die exakte Zeitdauer kann man mit dem Oszilloskop nachmessen.void DelayMS( unsigned int zeit )
mit Übergabeparameter. Diese Funktion erzeugt je nach Übergabewert eine unterschiedliche Zeitverzögerung.
D.h. beim Aufruf von DelayMS(500);
beträgt die Zeitverzögerung 500 ms,
beim Aufruf DelayMS(200);
beträgt die Zeitverzögerung 200 ms.
...
while(1){
L1=1, L3=0;
DelayMS200();
L2=1, L1=0;
DelayMS200();
...
L3=1, L5=0;
DelayMS200();
}
void DelayMS200( void ){
int i, j;
for( i=0, i<200, i++ ){
for( j=0, j<459, j++);
}
 }
void DelayMS( unsigned int zeit ){
int i, j;
for( i=0, i<zeit, i++ ){
for( j=0, j<459, j++);
}
 }
In dieser Aufgabe wird das Einbinden von Headerdateien trainiert.
Im Gegensatz zu den Übergabeparametern gibt es maximal einen Rückgabeparameter. Deshalb wird hier nur der Datentyp festgelegt.
In der Funktion int S0Check ( unsigned int m )
soll überprüft werden ob ein Taster betätigt wurde. Falls ja wird der übergebene
Wert der Variable invertiert (m = !m;
) und dieser Wert zurückgegeben. Man beachte, dass es nur einen Rückgabewert geben kann.
Übergabewerte gibt es beliebig viele, man unterscheidet sie durch die angegebene Reihenfolge. Des weiteren werden die Werte beim
Funktionsaufruf immer wieder neu kopiert.
Schreibe die Datei 05-Lauflicht-4.c, in der du das Lauflicht mit Tastendruck S0
aktivierst,
bzw. deaktivierst. Nutze hierzu die Funktion
int S0Check ( int m ){
.
…
}
Teste dein Wissen über Funktionen. Welche Paare gehören zusammen?
int add(int a, float b, int c);
int add(float j, int i, int k);
int summe;
summe=add(2, 3.2, 88);
add(3, 10.2, 7);
int summe, a, b;
summe=add(3.4, a, b);
int add(int i, float y);
int summe;
summe=add(2, 'a', 88);
double erg, x;
erg=cos(x);
void add(void);
void add(int x, float y, int i);
int summe;
summe=add(3, 10.2);
int add(int i, char j, int k);
char zeichen(void);
add( );
float mix(int mul, float y);
char laenge;
laenge=zeichen( );
char platz;
&nbps;platz=suche('g',10);
void berechne(double v);
double cos(double x);
float k, e;
e=mix(12,k);
berechne(3.78);
char suche(char art, int pos);