Witam,
Mam malutki problem dot. przerwań.
Z tego co wyczytałem, gdy jest uruchomiony jakiś program główny (np. wypisuje liczby od 0 do 100 na wyświetlacz LCD)
i przyjdzie przerwania (np. z Timera), to ten program "główny" jest zatrzymywany, następnie jest skok do etykiety, którą ma nasze przerwanie, i po wykonaniu wszystkich poleceń znowu program wraca do miejsca w którym mu przerwano.
A teraz pytanie:
Co jeśli w przerwaniu zrobimy nieskończoną pętlę/albo pętlę która będzie trwała bardzo długo?
Może podam coś w praktyce.
Przerwanie wywoływane jest co 4sek.
Jak widać program zdąży na wyświetlaczu wyświetlić tylko "abcd" i potem przyjdzie nowe przerwanie.
Chcę się zapytać czy jeśli przyjdzie te nowe przerwanie, to program porzuci swoją pracę, która ma wykonać w przerwaniu i zacznie od początku, czy po prostu jeśli jest w przerwaniu(etykieta Przerwanko) to nie reaguje na przerwania dopóki nie wykona swojej pracy do końca?
W skrócie, czy jest możliwe aby program pokazał literki "abcdef", czy zawsze tylko zdąży pokazać "abcd"?
Mam malutki problem dot. przerwań.
Z tego co wyczytałem, gdy jest uruchomiony jakiś program główny (np. wypisuje liczby od 0 do 100 na wyświetlacz LCD)
i przyjdzie przerwania (np. z Timera), to ten program "główny" jest zatrzymywany, następnie jest skok do etykiety, którą ma nasze przerwanie, i po wykonaniu wszystkich poleceń znowu program wraca do miejsca w którym mu przerwano.
A teraz pytanie:
Co jeśli w przerwaniu zrobimy nieskończoną pętlę/albo pętlę która będzie trwała bardzo długo?
Może podam coś w praktyce.
Przerwanie wywoływane jest co 4sek.
Enable interrupts
Enable timer1
on timer1 Przerwanko
..
Jakiś nasz program
..
Przerwanko:
Lcd "a"
wait 1
Lcd "b"
wait 1
lcd "c"
wait 1
lcd "d"
wait 1
lcd "e"
wait 1
lcd "f"
wait 1
Return
Jak widać program zdąży na wyświetlaczu wyświetlić tylko "abcd" i potem przyjdzie nowe przerwanie.
Chcę się zapytać czy jeśli przyjdzie te nowe przerwanie, to program porzuci swoją pracę, która ma wykonać w przerwaniu i zacznie od początku, czy po prostu jeśli jest w przerwaniu(etykieta Przerwanko) to nie reaguje na przerwania dopóki nie wykona swojej pracy do końca?
W skrócie, czy jest możliwe aby program pokazał literki "abcdef", czy zawsze tylko zdąży pokazać "abcd"?