Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Podobne dokumenty
Programowanie mikrokontrolerów. 5 grudnia 2007

Metody obsługi zdarzeń

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Mikroprocesory i Mikrosterowniki Liczniki Timer Counter T/C0, T/C1, T/C2

LABORATORIUM. TIMERY w mikrokontrolerach Atmega16-32

Wbudowane układy peryferyjne cz. 2 Wykład 8

Przerwania, polling, timery - wykład 9

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Wstęp Architektura... 13

SYSTEM PRZERWAŃ ATmega 32

PROGRAMOWALNE SYSTEMY MECHATRONIKI

Uproszczony schemat blokowy zespołu 8-bitowego timera przedstawiono na rys.1

Układy czasowe / liczniki (timers/counters)

2. Architektura mikrokontrolerów PIC16F8x... 13

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wbudowane układy peryferyjne cz. 1 Wykład 7

Systemy wbudowane Mikrokontrolery

Hardware mikrokontrolera X51

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Przerwanie. Źródła przerwań

Podstawy Techniki Mikroprocesorowej Laboratorium

Programowanie mikrokontrolerów. 8 listopada 2007

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Wbudowane układy peryferyjne cz. 3 Wykład 9

równoległe (w wersji 4-, 8- i 16-bitowej). Same wyświetlacze ze względu na budowę i możliwości możemy podzielić na dwie grupy:

Kurs Zaawansowany S7. Spis treści. Dzień 1

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

Organizacja typowego mikroprocesora

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Układy czasowo-licznikowe w systemach mikroprocesorowych

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

MIKROKONTROLERY I MIKROPROCESORY

2.1 Porównanie procesorów

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

Instytut Teleinformatyki

AGH Akademia Górniczo- Hutnicza w Krakowie Katedra Elektroniki WIET

Mikroprocesor Operacje wejścia / wyjścia

MIKROPROCESORY architektura i programowanie

Mikrokontrolery AVR Wprowadzenie

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania. Sterowniki Urządzeń Mechatronicznych laboratorium. Ćw. 3: Timer v1.0

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Część I - Sterownik przerwań 8259A i zegar/licznik 8253

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Instytut Teleinformatyki

Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia

Techniki mikroprocesorowe i systemy wbudowane

Instytut Teleinformatyki

Uproszczony schemat blokowy konwertera analogowo-cyfrowego przedstawiony został na rys.1.

Omówimy przykłady 8-mio bitowego licznika z wyposażenia ADuC812 (CISC 51) oraz mikrokontrolera ATMega128 należącego do rodziny AVR.

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

WPROWADZENIE Mikrosterownik mikrokontrolery

MIKROPROCESORY architektura i programowanie

Szkolenia specjalistyczne

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Przetworniki analogowo-cyfrowe (A/C)

Komunikacja w mikrokontrolerach. Wydział Elektroniki Mikrosystemów i Fotoniki Piotr Markowski

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Technika mikroprocesorowa I Wykład 2

Dokumentacja mikrokontrolera Atmega16 firmy Atmel

Sterownik nagrzewnic elektrycznych HE module

Mikroprocesory i mikrosterowniki

Technika Mikroprocesorowa

Architektura komputerów

Wprowadzenie do podstaw programowania AVR (na przykładzie mikrokontrolera ATmega 16 / 32)

Język FBD w systemie Concept

Mikroprocesory i Mikrosterowniki

Mikrokontroler ATmega32. Tryby adresowania Rejestry funkcyjne

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Systemy wbudowane. Paweł Pełczyński

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Wykład Mikroprocesory i kontrolery

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Mikroprocesory i Mikrosterowniki

Sterowanie multipleksowe 4-cyfrowego wyświetlacza siedmiosegmentowego w oparciu o system przerwao mikrokontrolera ATmega16 w języku Asembler

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Architektura komputerów. Układy wejścia-wyjścia komputera

Programowanie mikrokontrolerów - laboratorium

Programowanie w językach asemblera i C

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

2.1 Przesył danych między procesorem a tabelą zmiennych

(Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

Mikrokontrolery AVR techniczne aspekty programowania

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400

Opis procedur asemblera AVR

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

PC 3 PC^ TIMER IN RESET PC5 TIMER OUT. c 3. L 5 c.* Cl* 10/H CE RO WR ALE ADO AD1 AD2 AD3 AD4 A05 A06 LTJ CO H 17 AD7 U C-"

Kurs SIMATIC S7-300/400 i TIA Portal - Zaawansowany. Spis treści. Dzień 1

Programowanie mikrokontrolerów 2.0

Mikrokontroler AVR ATmega32 - wykład 9

Transkrypt:

Mikrokontroler ATmega32 System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe 1

Przerwanie Przerwanie jest inicjowane przez urządzenie zewnętrzne względem mikroprocesora, zgłaszające potrzebę jego obsługi Przerwanie jest chwilowym zaprzestaniem wykonywania programu przez mikroprocesor w celu wykonania procedury obsługi urządzenia zgłaszającego przerwanie Żądania obsługi są zdarzeniami asynchronicznymi względem programu Mechanizm przerwań zwalnia mikroprocesor z konieczności ciągłego obserwowania sygnałów żądań obsługi 2

Załączanie systemu przerwań Rejestr statusu SREG Globalne zezwolenie na przerwania I=0 przerwania zablokowane I=1 przerwania aktywne 3

Źródła przerwań Sygnał RESET Sygnały na zewnętrznych wyprowadzeniach mikrokontrolera Układy czasowo-licznikowe Porty komunikacyjne Przetwornik analogowo-cyfrowy Układy zarządzania programowaniem pamięci EEPROM i FLASH Poszczególne źródła przerwań można indywidualnie blokować za pomocą odpowiednich bitów w rejestrach sterujących. 4

Znaczniki przerwań Większość źródeł przerwań ma przyporządkowany w przestrzeni I/O rejestr, w którym można wyróżnić bit zwany znacznikiem przerwania (ang: Interrupt flag) Zgłoszenie żądania przerwania polega na ustawieniu tego bitu w stan 1 Przyjęcie przerwania przez jednostkę centralną automatycznie kasuje stosowny znacznik przerwania Znaczniki przerwań można ustawiać i kasować również programowo 5

Znaczniki przerwań Przykład znaczników przerwań zewnętrznych: INTF0, INTF1 i INTF2 umieszczonych w rejestrze GIFR 6

Przyjęcie przerwania Na przyjęcie przerwania składają się następujące operacje wykonywane automatycznie przez mikroprocesor: Wyłączenie globalnego zezwolenia na przerwania Zachowanie na stosie licznika programu Załadowanie wektora przerwania do licznika programu Dla większości przerwań skasowanie znacznika przerwania 7

Powrót z przerwania Powrót z przerwania jest zazwyczaj inicjowany instrukcją reti wykonującą następujące operacje: Pobranie ze stosu licznika programu Załączenie globalnego zezwolenia na przerwania 8

Priorytet przerwań O tym które ze zgłaszanych jednocześnie przerwań zostanie przyjęte jako pierwsze decyduje jego priorytet Priorytet poszczególnych źródeł przerwań w mikrokontrolerach AVR jest ustalony Adresy podprogramów obsługi przerwań są uporządkowane w kolejności malejącego priorytetu Najwyższy priorytet ma restart systemu 9

Wektory przerwań Wektorem przerwania nazywa się adres w pamięci programu, od którego rozpoczyna się podprogram obsługi przerwania Wektory przerwań zostały w mikrokontrolerach AVR zdefiniowane architekturą systemu i są umiejscowione na początku przestrzeni adresowej Objętość obszaru w pojedynczym wektorze przerwania nie pozwala na zapisanie w nim całej procedury obsługi W wektorze umieszcza się skok do właściwego podprogramu obsługi przerwania Wektory nieaktywnych przerwań można wykorzystać w inny sposób 10

Wektory przerwań 11

Wektory przerwań 12

Obsługa przerwań Procedura obsługi przerwania ma na celu obsłużenie urządzenia zgłaszającego przerwanie (odczytanie odebranego znaku lub przetworzonej próbki napięcia, wykonanie czynności po zadanym opóźnieniu w układzie czasowym) W procedurze obsługi należy zachować na stosie zawartość wszystkich rejestrów w niej wykorzystywanych, w szczególności SREG Zawartość rejestrów musi zostać przywrócona przed zakończeniem procedury 13

Obsługa przerwań System przerwań jest wyłączany po przyjęciu każdego przerwania by nie spowodować nadmiernego powiększenia stosu wskutek wielokrotnego przyjęcia zbyt szybko przychodzącego przerwania Zgłoszenie 1 Zgłoszenie 2 Wykonanie programu Obsługa 1 Obsługa 2 czas 14

Obsługa przerwań Istnieje niebezpieczeństwo nieobsłużenia często zgłaszanego przerwania wskutek wykonywania innej, długotrwałej procedury obsługi Cykliczne zgłoszenia przerwań od układu czasowego Wykonanie programu Przerwanie nieobsłużone! 15

Obsługa przerwań Zapobiegnie temu załączenie systemu przerwań w samej procedurze, wówczas obsługa może być przerwana przez inne zgłoszenie Cykliczne zgłoszenia przerwań od układu czasowego Wykonanie programu 16

Przerwanie inicjalizacyjne Program wykonywany po restarcie systemu jest traktowany jako obsługa przerwania Wewnętrzny sygnał RESET jest automatycznie zaliczany do sygnałów zgłaszających przerwanie RESET ma najwyższy priorytet i przydzielony wektor na początku przestrzeni adresowej Przerwanie od sygnału RESET jest niemaskowalne nie można go wyłączyć 17

Przerwanie inicjalizacyjne 18

Porty I/O Port B Port A Port D Port C 19

Porty I/O Porty I/O pozwalają podłączyć do mikrokontrolera zewnętrzne czujniki z wyjściami cyfrowymi lub układy wykonawcze sterowane cyfrowo Poszczególne linie portów są niezależnie konfigurowane jako wejścia lub wyjścia Linie zaprogramowane jako wejścia mogą realizować funkcje alternatywne, np. wejścia przetwornika A/C, interfejs szeregowy 20

Ogólna struktura linii portu cyfrowego Rezystor podciągający Wybór wejście/wyjście Końcówka zewnętrzna Bit wyjściowy Stan końcówki 21

Rejestry funkcyjne związane z portem Do komunikowania się jednostki centralnej z portami służą specjalne rejestry funkcyjne Rejestry związane z portami są mapowane na przestrzeń adresową I/O od adresu 0x00 (i jednocześnie przestrzeń pamięci danych od 0x20) Z każdym portem są skojarzone trzy rejestry: - PORTx (x zastępuje symbol portu, np. PORTA) - PINx - DDRx 22

Rejestry funkcyjne związane z portem Do rejestru PORTx wpisywany jest wzór stanów wymuszanych na końcówkach portów w przypadku zdefiniowania ich jako wyjścia Nazewnictwo bitów rejestru dla portu A: 23

Rejestry funkcyjne związane z portem Bity rejestru DDRx definiują końcówki portu jako wyjścia lub wejścia Wpisanie 1 powoduje, że odpowiednia końcówka staje się wyjściem o charakterystyce typowej dla układów CMOS Nazewnictwo bitów rejestru dla portu A: 24

Rejestry funkcyjne związane z portem W rejestrze PINx przechowywany jest wzór rzeczywistych stanów logicznych końcówek portu, niezależnie od wybranego kierunku danych Jest to rejestr tylko do odczytu Nazewnictwo bitów rejestru dla portu A 25

Rejestry funkcyjne związane z portem Konfiguracja końcówki portu Bit PUD w rejestrze SFIOR wyłącza rezystory podciągające końcówek wszystkich portów 26

Układy czasowo-licznikowe Układy czasowo-licznikowe są licznikami cyfrowymi wyposażonymi w zaawansowane tryby wyzwalania i programowanie źródła sygnału zegarowego Układy licznikowe w mikrokontrolerach służą do: - odmierzania czasu - zliczania zdarzeń - generacji przebiegów o programowanej częstotliwości i wypełnieniu 27

Układy czasowo-licznikowe W architekturze AVR ATmega dostępne są co najmniej dwa układy czasowo-licznikowe W ATmega implementowane są liczniki 8- i 16-bitowe Mikrokontroler ATmega32 posiada 2 liczniki 8-bitowe timer/counter0 i timer/counter2 oraz 1 licznik 16-bitowy timer/counter1 28

Układy licznikowe rejestry funkcyjne Rejestr TCNTn (n jest numerem licznika) zawiera aktualną wartość zliczoną przez licznik i jest rejestrem 8-bitowym lub parą rejestrów TCNTnH i TCNTnL dla licznika 16-bitowego. W przypadku licznika 16-bitowego TCNTnH jest rejestrem buforowym i wymagana jest ustalona sekwencja zapisu w celu prawidłowej inicjalizacji licznika Przepełnienie licznika wywołuje zgłoszenie przerwania 29

Układy licznikowe rejestry funkcyjne 8-bitowy rejestr TCNT0: Para rejestrów TCNT1H i TCNT1L: 30

Układy licznikowe rejestry funkcyjne Aktualna wartość w liczniku jest porównywana z zawartością rejestru OCRn lub OCRnH i OCRnL Z licznikiem 1. w ATmega32 są skojarzone 2 pary rejestrów: OCR1AH(L) i OCR1BH(L) W wyniku zrównania się wartości w liczniku i rejestrze OCR jest zgłaszane przerwanie Wynik operacji porównania może służyć do generacji sygnału o programowanym wypełnieniu 31

Układy licznikowe rejestry funkcyjne Zgłoszenie przerwania Generacja przebiegu PWM 32

Układy licznikowe rejestry funkcyjne Do sterowania trybem pracy licznika służy rejestr TCCRn. Bity CSn określają źródło sygnału taktującego licznik Bity WGMn określają tryb pracy licznika Znaczniki COMn wybierają sposób generacji sygnałów wyjściowych 33

Układy licznikowe rejestry funkcyjne Przykład - rejestr sterujący pracą licznika 0 (TCCR0): Znaczenie bitu FOC0 i bitów COM0x zależy od trybu pracy. 34

Układy licznikowe rejestry funkcyjne Znaczenie bitów WMG0x - tryb pracy: 35

Układy licznikowe rejestry funkcyjne Znaczenie bitów CS0x źródło sygnału taktującego: 36

Układy licznikowe preskaler i wybór źródła zegara Zadaniem preskalera jest dostarczenie sygnału taktującego o programowanej w szerokim zakresie częstotliwości (podział 1:1024) 37

Układy licznikowe tryby pracy Tryb pracy normalnej zliczanie do wartości maksymalnej Porównywanie porównanie zawartości licznika i rejestru OCRn wywołuje różne, zaprogramowane akcje Tryb CTC zerowanie licznika po wykryciu zgodności porównania Tryby PWM generacja sygnału prostokątnego o programowanej częstotliwości i wypełnieniu 38

Układy licznikowe załączanie przerwań w rejestrze TIMSK Bity TOIEn zezwalają na przerwania od przepełnienia timera n Bity OCIEnX zezwalają na przerwania od odpowiedniego układu porównania timera n 39

Układy licznikowe znaczniki przerwań w rejestrze TIFR Bity TOVn zgłaszają przerwania od przepełnienia timera n Bity OCFnX zgłaszają przerwania od odpowiedniego układu porównania timera n 40