Jeżeli to, co pokazałem jest poprawne, to w reszczcie nic raczej nie namieszałem, ponieważ w pozostałej części jest tylko sprawdzanie czyjników i w momencie wyzwolenia alarmu zmiana stanów na portach i to wszystko działa prawidłowo. Jeżeli zmienię w deklaracjach stan zmiennej c z 0 na 1 to wykonywana jest druga część programu, gdy zrobię odwrotnie wykonywana jest pierwsza część. W momencie wyzwolenia przerwania jest ono wykonywane, ponieważ w każdy wykonywany fragment progrmu jest sygnalizowany inną częstotliwości świecenia diody Led. Po restarcie dioda świeci ciągle, ponieważ jeden z czujników potrzebuje ok. 1 min na klalibrację i w tej części sygały z niego są ignorowane, po tym czasie dioda miga z pewną częstotliwością( centralka uzbrojona- wszystkie czujniki są sprawdzane). Jeżeli nastąpi wyzwolenie alarmu w obu tych stanach nastepuje "alarm" na odpowiednich stanach mikrokontrolera pojawiają się impulsy wyzawalące sygnalizatory alarmu, a częstotliwość migania diody Led się zwiększa. I wszysko działa prawidło. Jeżeli natomiast zmienna c==1; centralka jest wyłączona- dioda led nie świeci. W programie przerwania zawarłem opóżnienie i widzę, po diodzie led, że następuje zatrzymanie programu głównego. Kod, który umieściłem został pozbawiony zawartości, które nie mają wpływu na problem w celu lepszej przejrzystości. Odpowiadając drugiemu koledze; centralka nie ma zapamiętywać stanu. Po restarcie ma automatycznie przechodzić w stan czuwania, za tylko za pośrednictewm przerwania ma przechodzić w stan uśpienia i ponowne jej wybudzenie. Problem w tym, że wykonanie przerwania z zmiana w niej wartości zmiennej c; nie wpływa na program główny. Dzisiaj wieczorem jeszcze raz na sztywno poustawiam wartości c; w celu jednoznaczne określenia problemu.