rskup napisał(a):
W programie wchodzisz w funkcję kontrola_flagi_KL3_KL4() i jak masz wartość 2 dla zmiennej flaga_zbiornika ustawiasz ją na 0 a następnie wywołujesz if-a który od razu zmienia ją na 2.
Pewnie zmienna jest jeszcze gdzieś indziej używana, bo musi być między innymi zainicjalizowana oraz obsługiwane inne działania o których wspominasz a ich nie pokazałeś.
Czy przypadkiem nie zmieniasz tej zmiennej gdzieś w przerwaniach?
--
Pozdrawiam,
Robert
No właśnie flaga ma być też sterowana w przerwaniu, ale narazie powyłączałem wszystko z nią związane i zainicjowałem ją jako zmienna globalna. Przerwanie jest włączone od timera1, ale odpowiada ono za transmisje 433MHz, nie ma tam nic z tą flagą.
Dodałem pod przycisk kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Powinno działać teraz, że na zmianę na LCD wyświetla mi "KL3 zanurzenie start" i "Zanurzenie stop". Po odpaleniuprogramu włącza się "Zanurzenie start" i dalej nie reaguje przycisk. Gdy zakomentuje flaga_zbiornika = 0; działa tak jak powinno czyli "Zanurzenie start" potem "Zanurzenie stop" i koniec, czyli się zgadza