Traktionskontrolle

Hallo, ich möchte eine Traktionskontrolle entwickeln.
Dazu habe ich 3 Rechteck-Eingangssignale die ich vergleichen möchte.

Wie kann ich 3 Frequenzen gleichzeitig zählen?

Hat jemand Ideen bzw. Vorschläge?

Interrupts?

Mmmh, sagt mir noch nicht sehr viel. Schau aber grad mal nach...

Was genau ist denn die Funktion von interrupts bei der Atmel Programmstruktur?
Ich habe noch keine erfahrungen mit der Programmierung auf Hardwarebasis gesammelt

Ein Interrupt unterbricht den aktuellen Programmfluss und springt eine spezielle Funktion an.

Du könntest dann in der Funktion einen Zähler hochzählen und die Funktion dann wieder verlassen und das eigentliche Programm wird an der Stelle weitergeführt, an dem es unterbrochen wurde.

Bedenke aber, dass, während ein Interrupt läuft, kein anderer Interrupt ausgelöst wird; versuche also Deine Interrupt-Funktionen so kurz wie möglich zu halten! (Sollte dem bei dem Chip nicht so sein möge man mich bitte korrigieren.)

Am liebsten wäre es mir wenn ich eine bestimmte Zeit (z.B. 50ms) vorgeben könnte, in der die Impulse an allen 3 Eingängen gleichzeitig gezählt und anschließend an eine variable übergeben würden.

Hier könnte ich dann je nach abweichung in die Steuerung eingreifen um das "Gas" wegzunehmen.

Oder sollte ich das Problem ganz anders angehen?

Das kannst Du ja ganz einfach in der loop() mit einem delay(50) oder so lösen. :slight_smile:

Btw. sollten die entsprechenden Counter-Variablen volatile deklariert werden!