SUM - instrukcja lab3 - TIM - Zakład Urządzeń Mechatronicznych
Transkrypt
SUM - instrukcja lab3 - TIM - Zakład Urządzeń Mechatronicznych
Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania Sterowniki Urządzeń Mechatronicznych – laboratorium Ćw. 3: TIMER 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z moŜliwościami odmierzania czasu za pomocą wewnętrznego TIMER’a mikrokontrolerów serii AVR 2) Zakres niezbędnych wiadomości - rodzaje timerów ze względu na ilość bitów i podstawowe róŜnice między nimi - moŜliwe źródła sygnału wejściowego dla timerów - rola prescalera w timerze - umiejętność obliczenia częstotliwości pracy timera znając wartość prescalera oraz wartość przeładowania (wartość początkową) licznika - umiejętność dobrania prescalera oraz obliczenia wartość przeładowania (wartość początkową timera) tak, aby uzyskać Ŝądaną częstotliwość pracy timera w mikrokontrolerze - róŜnica między trybem timer, a trybem counter w mikrokontrolerach AVR Rejestry i bity sterujące uŜywane podczas ćwiczeń do konfiguracji timera TIM3: TCCR3A, TCCR3B, CS30,CS31,CS32, ETIMSK, TOIE3, TCNT3, WGM30, WGM31, WGM32, OCR3 3) Opis ćwiczenia Podczas ćwiczenia student porównuje pracę dwóch zdarzeń asynchronicznych zrealizowanych bez timera (zad 4a) i z timer’em (zad 4b). Do zadanie 4b) uŜyjemy timera 16-bitowego TIM3 i skonfigurujemy go tak, aby zliczał w górę i generował przerwanie podczas przepełnienia. Po przepełnieniu timer ma rozpocząć zliczanie od nowa. Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania Sterowniki Urządzeń Mechatronicznych – laboratorium Ćw. 3: TIMER 4) Przebieg ćwiczenia 4a) Zrealizować mruganie diody D1 z częstotliwością 0.5Hz. Jednocześnie dioda D2 ma się świecić, gdy wciśnięty jest przycisk SW1. Zbadać działanie programu. #include <avr/io.h> #include <util/delay.h> void main(void) { //konfiguracja kierunków portu DDR DDR… = … DDR… = … while(1) //pętla główna { PORT…|=(1<<…); for(…) _delay_ms(…); PORT&=~(1<<…); for(…) _delay_ms(…); zaświeć D1 czekaj 1 sek. (for… i _delay_ms…) zgaś D1 czekaj 1 sek. (for… i _delay_ms…) if(bit_is_clear(PIN…,…)) PORT…|=(1<<…); else … PORT&=~(1<<…); } } jeŜeli wciśnięty jest SW1 zaświeć D2 w przeciwnym wypadku zgaś D2 Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania Sterowniki Urządzeń Mechatronicznych – laboratorium Ćw. 3: TIMER 4b) Zmodyfikować program z zad4a) tak, aby dioda D1 mrugała za pomocą timera 16-bitowego szkielet programu: #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define WARTOSC_PRZELADOWANIA xxxxx SIGNAL(SIG_OVERFLOW3) { TCNT3 = WARTOSC_PRZELADOWANIA; //gdzie xxxxx to liczba będąca wynikiem obliczeń //przerwanie od przepełnienia TIMER’a TIM3 //ustawić wartość początkową //tutaj umiescic swój kod obslugi przerwania np. zaneguj stan na diodzie D1 } void main(void) { //konfiguracja kierunków portu DDR DDR… = … DDR… = … //konfiguracja timera TIM3 ================================================== //ustawić bity CS30, CS31, CS32 w rejestrze TCCR3B aby wybrać prescaler //wartość prescalera w zaleŜności od ustawień bitów CS__ moŜna znaleźć w nocie katalogowej TCCR3B ……… (1<<CS30); //gdzie ……… to albo |= albo &=~ TCCR3B ……… (1<<CS31); //gdzie ……… to albo |= albo &=~ TCCR3B ……… (1<<CS32); //gdzie ……… to albo |= albo &=~ ETIMSK|=(1<<TOIE3); //włączyć timer2 TCNT3 = WARTOSC_PRZELADOWANIA; //ustawić wartość początkową //konfiguracja timera======================================================= sei(); //globalne zezwolenie na przerwania while(1) { if(…) //pętla główna jeŜeli wciśnięty jest SW1 zaświeć D2 else … w przeciwnym wypadku zgaś D2 } } Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania Sterowniki Urządzeń Mechatronicznych – laboratorium Ćw. 3: TIMER 5) Sprawozdanie Sprawozdanie powinno zawierać: - schematy hardware do kaŜdego wykonanego zadania w ramach ćwiczeń - pod kaŜdym schematem powinien się znajdować opis i ewentualne wnioski - program, jaki grupa napisała na zajęciach - za kaŜdą linijką programu, jeŜeli będzie taka potrzeba, naleŜy umieścić bieŜący komentarz na temat danej linijki kodu - pod kaŜdym programem naleŜy umieścić własny opis działania programu i wnioski - porównanie efektu pracy programów z ćwiczenia 4a) i 4b) - obliczenia częstotliwości pracy timera uŜytego w zadaniu - ogólne wnioski i spostrzeŜenia na temat wykonanego ćwiczenia i zdobytej wiedzy