uC51 mikrokontrolery atmel at89c51 | programowanie | asembler | c | elektronika

8lut/100

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.

Źródło: http://demotywatory.pl/10911/Jest-kompot

Nieźle się zapowiada, ale nie o to nam chodziło

Hmmm....

Źródło: http://demotywatory.pl/109392/--Pijcie-pijcie-bedziecie-latwiejsze.

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:

Podoba ci się ten wpis?

Rozpocznij subskrybcję dzięki RSS!

Komentarze (0) Trackbacks (0)

Brak komentarzy.


Dodaj komentarz


Brak trackbacków.