próbowałeś analizować kod który CI podesłałem?

W kodzie który pokazałeś problem jest taki, że przerwanie pojawia się powiedzmy co 1 sekundę i w czasie gdy:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
w głównej pętli ten fragment wykonywany jest kilka set razy.... Dlatego dioda dziwnie się zachowuje

Dodałem w Twoim kodzie zmienną zezwalającą, zezwolenie ustawiane jest przy każdym wejściu do przerwania. W pętli głównej gdy zezwolenie jest różne od 0 wchodzę do pierwszego warunku i od razu wyłączam zezwolenie na powtórne wejście. Następnie sprawdzane są kolejne dwa warunki i powrót do głównej pętli. przy kolejnym obiegu pętli już nie nastąpi wejście do żadnego warunku bo zezwolenie jest równe 0. Dopiero jak zostanie zgłoszone przerwanie wtedy ponownie wskakujemy do warunku... Rozumiesz czy jeszcze bardziej Ci namieszałem?
