Witam
Jak w temacie mam problem z fałszywym sygnałem wyzwalającym przerwanie.
Moje urządzonko przedstawia się następująco:
Sercem jest AT89CX051, do którego podłączone dwa przekaźniki oraz 3 pcf'y 8574 - jeden odbiera sygnały z klawiatury(6 przycisków), pozostałe dwa sterują dynamicznie cyfrowym wyświetlaczem LED.
Do tego na krańcówkę wyprowadzone jest INT0 (sygnał startowy), a jako siódmy przycisk służy INT1(zatrzymanie awaryjne).
No i jest też LCD.
Działanie:
Ustawiamy trzy zestawy po dwa czasy w każdym (dlatego tak ponieważ mamy trzy ramiona i dla każdego z tych ramion musimy ustawić czas grzania i chłodzenia).
Od tego momentu urządzenie czeka na impuls startowy (zwarcie INT0 do masy), co staje się gdy drzwi od komór grzania i chłodzenia się zamkną. Gdy to się stanie włączają się oba przekaźniki i następuje zliczanie czasu. Oba czasy są prezentowanie na wyświetlaczu LED. Następnie po upływie jednego czasu wyłączany jest jeden przekaźnik a po upływie drugiego drugi przekaźnik.
Cała operacja powtarza się od początku (poza programowaniem czasów) po otwarciu drzwi i obrocie ramion.
Tak wygląda działanie w moich warunkach testowych (dom
), natomiast po podłączeniu tego wszystkiego do urządzeń w hali produkcyjnej zaczynają się dziać cuda...
Po zaprogramowaniu czasów następuje obrót ramion tak aby ramię "A" znalazło się w piecu (a ramię "C" w chłodzeniu), czasami podczas tego właśnie obrotu procesor dostaje sygnał startowy i zaczyna zliczanie czasów (jak pisałem wcześniej powinien go dostać dopiero w momencie zamknięcia drzwi do obu komór) po czym od razu się zatrzymuje i startuje znowu i dalej już pracuje prawidłowo.
Należy nadmienić, że impuls zatrzymywania jest tylko na przycisku (INT1) i nie jest w żaden sposób wyprowadzony na zewnątrz więc sam już nie wiem co jest grane.
Od razu mówie że wszystko zostało poprawnie podłączone.
Zrobiłem też mały eksperyment i odłączyłem od urządzenia przewód podłączony do INT0, a mimo to urządzenie dalej startowało podczas obrotu ramion. W tym momencie stawiałbym na zakłócenia elektromagnetyczne lub coś takiego bo ramiona są obracane przez spory silnik elektryczny.
Udało mi się co prawda programowo zniwelować samoczynny strat i stop w złym momencie ale sądzę, że to chyba rozwiązanie na krótką metę.
Mam więc pytanie czy ktoś się z czymś takim kiedyś spotkał?
Z góry dziękuje za każdą odpowiedź!
Paweł
Jak w temacie mam problem z fałszywym sygnałem wyzwalającym przerwanie.
Moje urządzonko przedstawia się następująco:
Sercem jest AT89CX051, do którego podłączone dwa przekaźniki oraz 3 pcf'y 8574 - jeden odbiera sygnały z klawiatury(6 przycisków), pozostałe dwa sterują dynamicznie cyfrowym wyświetlaczem LED.
Do tego na krańcówkę wyprowadzone jest INT0 (sygnał startowy), a jako siódmy przycisk służy INT1(zatrzymanie awaryjne).
No i jest też LCD.
Działanie:
Ustawiamy trzy zestawy po dwa czasy w każdym (dlatego tak ponieważ mamy trzy ramiona i dla każdego z tych ramion musimy ustawić czas grzania i chłodzenia).
Od tego momentu urządzenie czeka na impuls startowy (zwarcie INT0 do masy), co staje się gdy drzwi od komór grzania i chłodzenia się zamkną. Gdy to się stanie włączają się oba przekaźniki i następuje zliczanie czasu. Oba czasy są prezentowanie na wyświetlaczu LED. Następnie po upływie jednego czasu wyłączany jest jeden przekaźnik a po upływie drugiego drugi przekaźnik.
Cała operacja powtarza się od początku (poza programowaniem czasów) po otwarciu drzwi i obrocie ramion.
Tak wygląda działanie w moich warunkach testowych (dom

Po zaprogramowaniu czasów następuje obrót ramion tak aby ramię "A" znalazło się w piecu (a ramię "C" w chłodzeniu), czasami podczas tego właśnie obrotu procesor dostaje sygnał startowy i zaczyna zliczanie czasów (jak pisałem wcześniej powinien go dostać dopiero w momencie zamknięcia drzwi do obu komór) po czym od razu się zatrzymuje i startuje znowu i dalej już pracuje prawidłowo.
Należy nadmienić, że impuls zatrzymywania jest tylko na przycisku (INT1) i nie jest w żaden sposób wyprowadzony na zewnątrz więc sam już nie wiem co jest grane.
Od razu mówie że wszystko zostało poprawnie podłączone.

Zrobiłem też mały eksperyment i odłączyłem od urządzenia przewód podłączony do INT0, a mimo to urządzenie dalej startowało podczas obrotu ramion. W tym momencie stawiałbym na zakłócenia elektromagnetyczne lub coś takiego bo ramiona są obracane przez spory silnik elektryczny.
Udało mi się co prawda programowo zniwelować samoczynny strat i stop w złym momencie ale sądzę, że to chyba rozwiązanie na krótką metę.
Mam więc pytanie czy ktoś się z czymś takim kiedyś spotkał?
Z góry dziękuje za każdą odpowiedź!
Paweł