Co to są przerwania (część 1 z 3)
To jest pierwszy z serii trzech tekstów na temat przerwań. Moim zamiarem jest objąć w tej serii podstawowe informacje o przerwaniach (część 1), konfigurację systemu przerwań (część 2) i procedury obsługi przerwań (część 3). W pierwszej części gościnnie wystąpią Demotywatory.
W dziedzinie mikroprocesorów przerwania są to sygnały kontrolujące wykonywanie programu przez procesor. Wystąpienie przerwania powoduje, że procesor przestaje wykonywać swoje obecne czynności i przeskakuje do procedury obsługi przerwania. Gdy uC zakończy obsługę przerwania, wraca do miejsca, w którym przerwał wykonywanie programu.
program ----> przerwanie -----|
^------------------------------
Można to sobie wyobrazić na przykładzie sytuacji z życia wziętej. Zaprosiłeś znajomych i oglądacie film na kompie.
Hmmm....

O wiele lepiej
Oglądacie film, a w kuchni szykuje się żarełko. No, powiedzmy niech będą frytki w piekarniku. Co, nie mogą być? Oczywiście, że mogą, bo pasują do tego przykładu. Nie chcesz, żeby się przypaliły, więc nastawiasz sobie budzik w komórce na odpowiednią godzinę i problem z głowy.
Komóra dzwoni, ty wciskasz pauzę. I to jest właśnie przerwanie, no bo w końcu coś przerwało wam oglądanie filmu. Robisz chwilę przerwy, żeby zająć się frytkami i jak skończysz, wracasz do znajomych z pełnymi talerzami - to się zowie obsługą przerwania. Teraz wciskasz play i już możecie kontynuować oglądanie filmu, a dodatkowo jest smaczna przekąska - innymi słowy powrót z przerwania w dobrym stylu.
Proste, nie?
3 typy przerwań w uC51
Przerwania zewnętrzne. Jeśli pamiętasz oznaczenia nóżek AT89C51 i kompatybilnych układów, to przypomnij sobie dwie nóżki portu P3, oznaczone INT0# i INT1#. Te dwie nóżki mogą służyć do wysyłania sygnałów o przerwaniu zewnętrznym. # (negacja) oznacza, że podanie 0 na nóżkę wywoła przerwanie. Tego rodzaju przerwanie możesz zatem wygenerować sam, w dowolnym momencie.
Przerwania z timera. Timer działa na zasadzie zliczania impulsów generowanych przez mikrokontroler w każdym cyklu. Zliczanie odbywa się na rejestrze 8- lub 16-bitowym i gdy rejestr osiągnie wartość maksymalną, wywołane zostaje przerwanie (po czym timer zaczyna liczenie od początku).
Przerwania z portu szeregowego. Port szeregowy generuje przerwanie gdy odbierze lub wyśle 8 bitów (czyli pełny bajt). Przerwanie to oznacza, że coś trzeba zrobić w sprawie portu szeregowego: albo wysłać kolejny bajt, albo zrobić coś z bajtem przed chwilą odebranym.
W następnej części (już jest) konfiguracji systemu przerwań. Aby otrzymać informację o pojawieniu się nowego artykułu, sugeruję zapisanie się na newsletter lub kanał RSS.
Podobne wpisy:
- Konfiguracja systemu przerwań – rejestr specjalny IE (część 2 z 3)
- Procedury obsługi przerwań (część 3 z 3)
- Jaki jest według ciebie najlepszy zasilacz do projektów?
- Witam w nowej odsłonie uC51!

