Zitat Zitat von Hubert.G
Mit Flag meine ich eine globale Variable.
Wenn der Speicherplatz knapp wird verwende ich für die Flags gerne struct.
volatile struct {
unsigned char Zaehler :1; /* Zählerstand auswerten */
unsigned char Error :1; /* Wenn Error dann 0 */
unsigned char Wert_neu :1; /* neue Werte berechnen */
}flag;

Aufgerufen wird das dann z.B. mit:
if (flag.Error)

Der Sinn einer ISR ist etwas erkennen, aber nicht abzuarbeiten. Das soll nach Möglichkeit in der Endlosschleife gemacht werden.
Achso. Meine Idee wäre dann, das Abarbeiten in der Warte-Funktion durrchzuführen. Denn beim Beschleunigen z.B. ist er ja auch die meiste Zeit am warten, ich müsste also das Abarbeiten nur in einer Funktion machen. Müsste so gehen, oder?
Zitat Zitat von Hubert.G
StartSwitch aktiviert den INT1 Interrupt, sehe aber nicht wo dieser abgearbeitet wird.
Eigentlich sollte es das gleiche wie PollSwitch sein, es wird erkannt das ein Taster (Bumper) betätigt wurde, ADC wird gestartet um zu eruieren welcher es ist.
Wo müsste ich StartSwitch dann aufrufen? Am Ende der Interrupt-Routine? Oder nach dem Abarbeiten der Flags?