Hi inka,
das ist nicht so schwer. Es gibt wie immer verschieden Möglichkeiten. Wenn Du die Funktion in jedem Programm haben willst, dann empfiehlt sich folgendes:
Du erstellest zwei neue Dateien "inka.h" und inka.c".
So sieht die inka.h aus
Code:
#ifndef INKA_H_
#define INKA_H_
#endif /*INKA_H_*/
void WaitforStart(void); // blink until any switch is pressed,
// then wait until switch is released
und so die "inka.c"
Code:
void WaitforStart(void) // blink until any switch is pressed,
{ // then wait until switch is released
uint8_t t1, t2;
unsigned int col=OFF;
while (1) // blinking StatusLED until any switch is pressed
{
t1 = PollSwitch();
t2 = PollSwitch();
if (t1==t2)
{
if (t1)
{
break;
}
else
{
col ^= GREEN;
StatusLED(col);
}
}
Msleep(50);
}
StatusLED(OFF); // turn off StatusLED and ...
BackLED(ON,ON); // ... turn on both BackLED's
while (1) // wait until switch is released
{
t1 = PollSwitch();
t2 = PollSwitch();
if (t1==t2)
{
if (!t1)
{
break;
}
}
Msleep(50);
}
BackLED(OFF,OFF); // turn off BackLED's indication start of race
}
Im deinem Hauptprogramm (nennen wir es "test.c") machst Du dann folgendes:
Code:
#include "inka.h"
#include "asuro.h"
// weitere #include Anweisungen
int main(void)
{
Init();
WaitforStart();
while(1)
{
// Dein Programm
}
return 0;
}
Damit sollte es funktionieren. Wenn Du noch Fragen hast, dann frag einfach...
Noch ein kleiner Hinweis: void WaitforStart(void); ist nicht der Aufruf der Funktion, sonder die Deklaration. Damit sagst Du dem Programm, dass es eine solche Funktion gibt, und welche Parameter und Returnwerte es erwartet bzw. zurück gibt. Der Aufruf erfolgt immer mit den Konkreten Parametern – in diesem Fall also keinen (void).
Gruß,
_HP_
Lesezeichen