• Nie Znaleziono Wyników

Metody obsługi zdarze ´n

N/A
N/A
Protected

Academic year: 2021

Share "Metody obsługi zdarze ´n"

Copied!
23
0
0

Pełen tekst

(1)

Metody obsługi zdarze ´n

• Przerwanie (ang. Interrupt) - zmiana sterowania, niezale˙znie od

aktualnie wykonywanego programu, spowodowana pojawieniem si˛e sygnału przerwania. Pojawienie si˛e przerwania powoduje

wstrzymanie aktualnie wykonywanego programu i wykonanie przez kontroler procedury obsługi przerwania.

• Zapytywanie (ang. Polling) - aktywne, okresowe, próbkowanie (sprawdzanie) statusu urz ˛adze´n zewn˛etrznych przez kontroler.

(2)

SWB - Przerwania, polling, timery - wykład 10asz 2

Zapytywanie (ang. Polling)

• Technika polling jest najcz˛e´sciej u˙zywana w kontek´scie obsługi urz ˛adze´n wej´scia/

wyj´scia,

• W polling-u komputer centralny cyklicznie sprawdza stan urz ˛adzenia zewn˛etrznego w oczekiwaniu na gotowo´s´c tego urz ˛adzenia - czeka na gotowo´s´c,

• Polling znajduje zastosowanie w sytuacjach, gdy komputer ł ˛aczy si˛e z zewn˛etrznymi urz ˛adzeniami w celu zebrania (od´swie˙zenia) danych, przy czym współpraca ta odbywa si˛e w trybie off-line,

• Polling mo˙ze by´c wykorzystany do wymiany informacji z urz ˛adzeniami zewn˛etrznymi, w sytuacji gdy z jaki´s wzgl˛edów urz ˛adzenia te nie mog ˛a rozpocz ˛a´c komunikacji,

• W systemach obsługuj ˛acych jedno zadanie polling mo˙ze równie˙z mie´c zastosowanie.

Wi˛ekszo´s´c czasu procesora byłaby wówczas tracona na sprawdzanie gotowo´sci urz ˛adzenia,

• W systemach, które wymagaj ˛a wykonania wielu zada ´n polling jest mało efektywny w stosunku do przerwa´n.

(3)

Rodzaje przerwa ´n

1. Sprz˛etowe:

• Zewn˛etrzne sygnał przerwania pochodzi z zewn˛etrznego ´zródła.

Przerwania te słu˙z ˛a do komunikacji z urz ˛adzeniami zewn˛etrznymi.

• Wewn˛etrzne - pochodz ˛ace od timera

• Wewn˛etrzne wyj ˛atki - (ang. exceptions) – zgłaszane przez

procesor dla sygnalizowania sytuacji wyj ˛atkowych (np. dzielenie przez zero)

2. Programowe: z kodu programu wywoływana jest procedura obsługi przerwania (do komunikacji z systemem operacyjnym).

(4)

SWB - Przerwania, polling, timery - wykład 10asz 4

Wektory przerwa ´n

• Wektor przerwa ´n jest adresem pocz ˛atku obsługi przerwania,

• Wektor przerwa ´n, w momencie wyst ˛apienia przerwania, wpisywany jest do licznika rozkazów - rejestr PC, a zawarto´s´c rejestru PC jest kładziona na stos,

• Adresy procedur obsługi przerwa ´n zapisane s ˛a w tablicy wektorów przerwa´n,

• Przechowuje ona adresy poszczególnych procedur obsługi przerwa ´n,

(5)

Tablica wektorów przerwa ´n dla µC Atmel ATMega32

Dokładniejsze informacje w dokumentacji.

(6)

SWB - Przerwania, polling, timery - wykład 10asz 6

Przerwania programowe

• Z kodu programu wywoływana jest procedura obsługi przerwania,

• Najcz˛e´sciej wykorzystywane do komunikacji z systemem

operacyjnym, który w procedurze obsługi przerwania (np. w DOS 21h)

(7)

Przerwania maskowalne i niemaskowalne

• Przerwania maskowalne które mo˙zna blokowa´c i odblokowa´c programowo,

• Przerwania niemaskowalne - przerwania, których nie mo˙zna zablokow´c programowo. S ˛a to przerwania, których wyst ˛apienie

ka˙zdorazowo powoduje bezwarunkowy skok do funkcji obsługi tego przerwania, np. reset

(8)

SWB - Przerwania, polling, timery - wykład 10asz 8

Obsługa przerwania

• Procedura obsługi przerwania - ci ˛ag rozkazów realizuj ˛acych po˙z ˛adan ˛a reakcj˛e na przerwanie,

• Program główny - sekwencja działa ´n (rozkazów) mikroprocesora realizowanych gdy nie ma przerwa´n,

• Obsługa przerwania nie mo˙ze wprowadza´c ˙zadnych zmian w programie głównym.

(9)

Procedura obsługi przerwania

1. Rozpoznanie przyczyny przerwania (realizacja mo˙ze by´c sprz˛etowa), 2. Skasowanie przyczyny przerwania (realizacja mo˙ze by´c sprz˛etowa), 3. Zablokowanie przerwania,

4. Składowanie na stosie rejestrów roboczych, 5. Wła´sciwa obsługa przerwania,

6. Odtworzenie rejestrów roboczych ze stosu, 7. Odblokowanie przerwania,

8. Powrót do zawieszonego programu.

(10)

SWB - Przerwania, polling, timery - wykład 10asz 10

Stos

• W momencie wywołania przerwania adres odkładany jest na stos,

• Wska´znik stosu powinien by´c ustawiony na miejsce gdzie znajduje si˛e stos.

(11)

Priorytet przerwa ´n

• Priorytet przerwa ´n - zró˙znicowanie co do wa˙zno´sci (pilno´sci) zada´n realizowanych przez system mikroprocesorowy,

• W szczególno´sci zadaniami tymi mog ˛a by´c procedury obsługi

przerwa´n ró˙znicuj ˛ac ich pilno´s´c dokonuje si˛e okre´slenia priorytetów poszczególnych przerwa´n,

• W przypadku AVR system obsługi przerwa ´n jest płaski (brak hierarchii). Wszystkie przerwania s ˛a jednakowo wa˙zne.

(12)

SWB - Przerwania, polling, timery - wykład 10asz 12

Sprz˛etowa realizacja hierarchii przerwa ´n

• sprz˛etowo - o wyborze przerwania decyduje kontroler przerwa ´n.

(13)

Programowa realizacja hierarchii przerwa ´n

• programowo - poprzez wspóln ˛a procedur˛e obsługi przerwa´n. Jest on arbitrem systemu przerwa´n (rozpoznaje ´zródła aktualnych przerwa´n i decyduje o kolejno´sci ich obsługi)

(14)

SWB - Przerwania, polling, timery - wykład 10asz 14

Asynchroniczno´s´c przerwa ´n

• Przerwania z ró˙znych ´zródeł pojawiaj ˛a si˛e w dowolnych, niezale˙znych od siebie, chwilach czasu,

• z punktu widzenie procesora przerwania 1 i 3 wyst ˛apiły jednocze´snie.

(15)

System przerwa ´n bez priorytetów

• Opó´znienia {∆t2, ∆t3} w reakcji na obsług˛e przerwa´n,

• Mo˙zliwo´s´c zgubienia przerwania podczas tych opó´znie ´n,

• Maksymalny czas oczekiwania na obsług˛e przerwania mo˙ze by´c równy sumie czasów obsługi pozostałych przerwa´n w systemie,

(16)

SWB - Przerwania, polling, timery - wykład 10asz 16

System przerwa ´n z priorytetami

• Istnieje hierarchia wa˙zno´sci przerwa ´n,

• Opó´znienia {∆t1, ∆t2} w reakcji na obsług˛e przerwa´n,

• Przerwania o ni˙zszych priorytetach mog ˛a dłu˙zej czeka´c na obsług˛e (w skrajnych przypadkach mog ˛a by´c nie obsłu˙zone),

(17)

Rodzaje przerwa ´n

• Przerwania zegarowe - odmierzanie czasu,

• Przerwania od urz ˛adze´n zewn˛etrznych - nieregularne,

• Przerwania od układów kontroluj ˛acych prac˛e systemu - o najwy˙zszym priorytecie. Sygnalizuj ˛a stan pracy jak

– zanik zasilania,

– bł ˛ad/wyj ˛atek procesora, – inne

(18)

SWB - Przerwania, polling, timery - wykład 10asz 18

Liczniki i timery

• Timery s ˛a to liczniki słu˙z ˛ace do odmierzania okresów czasu,

• Cz˛estotliwo´s´c pracy licznika jest okre´slana poprzez podział cz˛estotliwo´sci zegara,

• Timery (liczniki) mog ˛a mie´c ró˙zn ˛a długo´s´c - zazwyczaj 8 albo 16 bitów,

• Przerwanie od timera generowane jest w momencie przepełnienia licznika.

(19)

Timer0 w µC Atmel ATMega32

Licznik pojedynczy,

Automatyczne zerowanie (Auto Reload),

Generator Pulse Width Modulator (PWM),

generator cz˛estotliwo´sci,

Licznik zdarze´n zewn˛etrznych,

10-bitowy prescaler,

Przepełnienie (TOV0 and OCF0).

(20)

SWB - Przerwania, polling, timery - wykład 10asz 20

Timer0 w µC Atmel ATMega32 - schemat blokowy

(21)

Uruchomienie timera0 i timera1

1. Ustawienie trybów pracy timera. Normalny tryb pracy jest domy´slny.

Pozostałe tryby omówione b˛ed ˛a na nast˛epnych wykładach.

2. Ustawienie prescalera okre´slenie cz˛estotliwo´sci pracy zegra licznika w oparciu o zegar systemowy. Dost˛epne dzielniki to

N = {1, 8, 64, 256, 1024} - tyle razy mo˙zna zmiejszy´c cz˛estotliwo´s´c zegara systemowego,

3. Ustawienie etykiety wektora przerwa´n danego przerwania,

4. Uruchomienie wszystkich przerwa´n oraz przerwa´n timera (rejestr Timer/Counter Interrupt Mask Register),

5. Wystartowanie timera 6. Obsługa przerwa´n.

(22)

SWB - Przerwania, polling, timery - wykład 10asz 22

Struktura programu obsługi przerwa ´n (Bascom-AVR)

(23)

Zadania na ´cwiczenia

Wszystkie zadania nale˙zy wykona´c w ´srodowisku BASCOM-AVR 1. Wykorzystuj ˛ac przerwanie int0 zrealizuj system, który zlicza

wci´sni˛ecia przycisku i wy´swietla wynik.

2. Posługuj ˛ac si˛e timerem pracuj ˛acym w normalnym trybie zrealizuj generator o cz˛estotliwo´sci f = . . . i współczynniku wypełnienia ω = . . . podanych przez prowadz ˛acego. Po naci´sni˛eciu przycisku generowana cz˛estotliwo´s´c powinna zwi˛eksza´c si˛e o 10%,

3. O ile to mo˙zliwe, zrealizuj zadanie z punktu 2 na rzeczywistym układzie.

Cytaty

Powiązane dokumenty

Programowe: z kodu programu wywoływana jest procedura obsługi przerwania (do komunikacji z systemem operacyjnym).... Tablica wektorów przerwa ´n dla µC

Zgodnie z wprowadzonymi 10 lipca 2014 roku zmianami w Rozporządzeniu Ministra Spraw Wewnętrznych i Administracji w sprawie spisu wyborców, gmina

Pobieranie danych do faktury moŜliwe jest wyłącznie w momencie wywołania okna Pobierz kontrahenta w trakcie edycji faktury... W wersji DEMO jest moŜliwość wpisania

Standardowo program instaluje się w katalogu c:\Program Files\Kambit\Serwis3. Możesz zmienić miejsce instalacji wciskając przycisk „Przeglądaj” i wskazać inną

W opcjach Parametrów mamy możliwość skonfigurować ustawienia, które zautomatyzują pracę programu oraz skrócą czas m.in. tworzenia nowej przesyłki, pobierania danych

Opcja Popraw zlecenie umożliwia uzupełnienie danych dotyczących zlecenia. Wygląda jak wprowadzanie nowego zlecenia. W nagłówku pojawia numer zlecenia i dodatkowo

Dodatkowo program umożliwia nam utworzenia przesyłki na podstawie dokumentu sprzedaży lub danych Klienta, które uzupełniają się automatycznie wybierając Akcja ->

Sprawdź ilość oleju w zbiorniku (patrz procedura „Kontrola poziomu oleju” w rozdziale „CZYNNOŚCI KONSERWACYJNE WYKONYWANE PRZEZ UŻYTKOWNIKA”. Jeśli do podnośnika wlano