Irgendwas mache ich immer noch falsch!
Code:
funktionen.c: In function ‘Beschleunige’:
funktionen.c:51: error: ‘abgebrochen’ undeclared (first use in this function)...
main.c
Code:
#include "asuro.h"
extern int abgebrochen;
#include "funktionen.h"

int main(void)

{
	// Initialisierung
	Init();
	sei();
	StartSwitch();
	
	// hier kommt der Hauptteil des Programms
	StatusLED(RED);
	while (1)
	{
		/*
		** Nach einem erfolgreichen Beschleunigungsvorgang soll so lange weitergefahren
		** werden, wie kein Hindernis kommt. Ansonsten wird an den Anfang der Schleife
		** zurückgesprungen und wieder von 0 beschleunigt.
		*/
		if (Beschleunige(120, 150, 3))
		{
			while (abgebrochen == 0);
			abgebrochen = 0;
		}
	}

	return 0;

}
funktionen.c (Auszug)
Code:
#include "asuro.h"
int Beschleunige(int start, int end, int zeit)
{
	StatusLED(GREEN);
	int momentan;
	int durchlaeufe = end - start;
	float zeitschritt = (float) zeit / (float) durchlaeufe * 1000;
	
	for(momentan=start; momentan<end; momentan++)
	{
		// wenn die Geschwindigkeit von einem Interrupt verändert wurde, wird der Vorgang unterbrochen
		if (abgebrochen == 1)
		{
			abgebrochen = 0;
			return 0;
		}
		Geschwindigkeit(momentan, momentan);
		Warte(zeitschritt);
	}
	return 1;
}
funktionen.h
Code:
int Beschleunige(int, int, int);