E3B-SMP-ATMega128-02-, Elektrotechnika, Downloads


Ćwiczenie 5
AVR ATmega128.
Asembler cz.2

Zakres materiału

Do ćwiczenia potrzebna jest znajomość:

Cel ćwiczenia

Celem ćwiczenia jest opanowanie instrukcji asemblera, utrwalenie obsługi rejestrów, przeglądanie obszarów pamięci, wykorzystanie układów Timer/Licznik. W czasie ćwiczenia należy napisać 2 programy pogłębiające i utrwalające obsługę mikrokontrolera AVR oraz program obsługujący timer0 w trybie odpytywania jako generator fali prostokątnej.

Wprowadzenie

Podstawowe cechy układ timera na przykładzie Timera/Licznika0

Główne cechy 8-bitowego Timera/Licznika0:

- Licznik z pojedynczym kanałem

- Timer z zerowaniem przy zgodności z zadanym warunkiem (samoprzeładowanie)

- Bezhazardowy modulator szerokości impulsu z poprawną fazą

- Generator

- Licznik zdarzeń zewnętrznych

- Źródła przerwań przepełnienia i porównania (TOV0, OCF0)

0x01 graphic

Rejestr licznika TCNT0 oraz rejestr porównawczy OCR0 są rejestrami 8-bitowymi.

Wszystkie sygnały przerwań są umieszczane w rejestrze TIFR. Każde przerwanie jest indywidualnie maskowane przez rejestr TIMSK.

Licznik może być sterowany wewnętrznie poprzez prescalera lub zewnętrznie poprzez pin T0. Licznik jest nieaktywny, gdy żadne źródło nie jest wybrane.

Układ czasowo-licznikowy może być taktowany bezpośrednio przez zegar systemowy (przez ustawienie CSn 2:0 = 1). Operacje wykonują się wtedy najszybciej z maksymalną częstotliwością zegara układu czasowo-licznikowego równą częstotliwości zegara systemowego (fCLK_I/O). Inne rozwiązanie polega na

użyciu jednego z czterech zaworów (taps) prescalera jako źródła zegarowego. Zegar prescalera ma wówczas częstotliwość równą fCLK_I/O/8, fCLK_I/O/64, fCLK_I/O)/256 lub fCLK_I/O/1024.

Tryb Normalny

Najprostszym trybem operacji jest tryb normalny, w tym trybie licznik zawsze liczy w górę, i nie jest wykonywane czyszczenie licznika. Licznik gdy osiąga swoją maksymalną wartość (MAX=0xFF) zaczyna liczyć od wartości minimalnej (0x00). W tym trybie flaga przekroczenia zakresu TOV0 zostanie ustawiona w tym samym cyklu zegarowym, w którym wartość TCNT0 staje się zerem. W tym przypadku flaga TOV0 zachowuje się jak dziewiąty bit, z wyjątkiem tego że jest tylko ustawiana, nie czyszczona.

Wykorzystanie timera do wygenerowania fali prostokątnej

W celu stworzenia generatora fali prostokątnej np. o częstotliwości 1 kHz, należy po odliczeniu okresu 500 µs zmieniać stan portu na przeciwny, poczym uruchomić odmierzanie kolejnego opóźnienia. Generowany przebieg wyprowadzić na wyjście PB0. Przepełnienie timera/licznika TC0 (przejście od stanu $FF do stanu $00) ustawia flagę TOV0 w rejestrze TIFR. Inkrementacja wartości timera/licznika następuje zgodnie z ustawionym parametrem preskalera w rejestrze TCCR0. Wpisanie do tego rejestru wartości 2 spowoduje inkrementacje co 8 okresów oscylatora systemowego. Przy rezonatorze kwarcowym o częstotliwości 8 MHz, kwant odmierzonego czasu będzie równy 1 µs, a liczba zliczanych odcinków czasu będzie wynosić 500. Należy pamiętać, że 8-bitowy rejestr TCNT0 zliczy nie więcej niż 256 kwantów czasu, a problem zliczenia 500 impulsów rozwiązać programowo (poprzez 2-krotne zliczenie 250 impulsów). Przy kontrolowaniu programowym flagi TOV0 należy pamiętać o jej „ręcznym” zerowaniu poprzez wpisanie bitu o wartości „1” na pozycji TOV0.

Program ćwiczenia

  1. Napisać program, w którym port A będzie przyjmować pierwszą liczbę z szeregu liczb umieszczonych w pamięci SRAM i w tym obszarze pamięci umieścić 20 kolejnych komórek z liczbami o wartości 2 więcej niż poprzednia. Do wpisywania szeregu użyć adresów pośrednich (z inkrementacją). Port B będzie maską (do zadawania kombinacji bitów) do wyszukania spośród ciągu liczb w SRAM-ie. Port C będzie przechowywał informację o ilości liczb z szeregu, w których występuje szukana kombinacja.

  1. Napisać program, w którym porty A i B są wejściami służącymi do zadawania dwóch liczb. Port C służy do pobierania liczby do porównania z wynikiem operacji (dodawanie logiczne, dodawanie algebraiczne) z portów A i B oraz do wyświetlania wyniku. Wejściowy port D służy do zarządzania programem poprzez następujące słowo sterujące:

bit 0 - pobranie liczb z portów A,B,C

bit 1 - dodawanie logiczne

bit 2 - dodawanie algebraiczne

  1. Zmodyfikować program z punktu 2 o funkcje „trigger” - zezwolenie na wykonanie każdą z powyższych instrukcji.

  1. Napisać program generatora fali prostokątnej o częstotliwości 1 kHz

ĆWICZENIE 5 3EB - SYSTEMY MIKROPROCESOROWE

3EB - SYSTEMY MIKROPROCESOROWE ĆWICZENIE 5

2 Katedra Automatyki Napędu i Urządzeń Przemysłowych AGH, Kraków 2011

3 Katedra Automatyki Napędu i Urządzeń Przemysłowych AGH, Kraków 2011



Wyszukiwarka

Podobne podstrony:
kl3 inst 02, Elektrotechnika, Downloads
kl3 elektro 02, Elektrotechnika, Downloads
kl3 inst 02, Elektrotechnika, Downloads
E3B-waz, Elektrotechnika, Downloads
78 Nw 02 Elektronarzedzia
02-elektrotechnika samochodowa, Instrukcje BHP, XV - MECHANIKA I LAKIERN. SAMOCH
zagadnienia na sprawdzian 2012, Elektrotechnika, Downloads
Procedury zakonczenia 2011 2012, Elektrotechnika, Downloads
Mapa 2, Elektrotechnika, Downloads
GrupaAiB rok3 2011, Elektrotechnika, Downloads
2011 02 Elektronika dla informatyków Niedoskonałość kondensatorów
wz r teczki, Elektrotechnika, Downloads
wzorpodanie, Elektrotechnika, Downloads
Zasady testów Przemienniki st, Elektrotechnika, Downloads
02 Elektra zadanie
har lab ea di 1 02 elektrotechnika 2011 12
UP IPS niestacjonarne dwuletnie studia II st. wczesne wspomaganie rozwoju dziecka rok 2, Elektrotech
wzor strony tytulowej, Elektrotechnika, Downloads

więcej podobnych podstron