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

Podobne dokumenty