Die Bezeichnung für den Interrupt sieht mir mit INT0_6 zumindest verdächtig aus. Dabei ist GCC recht pingelig - die neuere Version sollte aber wenigstens eine Warnung geben wenn das falsch ist.
Das Ende der ISR mit RTI macht der Compiler schon, darum muss man sich nicht künnern, wenn man es nicht expizit verlangt. Man muss noch daran denken die Zählervariable als volatile zu deklarieren, damit der Compiler nicht zu viel wegoptimiert.
Für einen Incrementalgeber muss man aber schon etwas mehr machen als nur die Interrupts Zählen, denn einen Interrupt gibt es in beide Richtungen. Das mindeste ist eine unterscheidung nach hoch oder runter zählen, je nachdem ob die 2. Lichtschranke zu dem Incrementalgeber H oder L ist, oder notfalls auch noch nach der Polung am Motor.
Lesezeichen