Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu: mgr Jerzy Wałaszek
Konsultacje: Wojciech Grodowski, mgr inż. Janusz Wałaszek

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Mikrokontrolery

ATtiny25/45/85

8-bitowy timer/licznik 1 w trybie ATtiny15

obrazek

Educational and Non-Profit Use of Copyrighted Material:

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s permission is not required when using copyrighted material in: (1) an academic report, thesis, or dissertation; (2) classroom handouts or textbook; or (3) a presentation or article that is solely educational in nature (e.g., technical article published in a magazine).

https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines

SPIS TREŚCI
Podrozdziały

obrazek

Tryb kompatybilności z ATtiny15 jest wybierany przez zapis kodu "001" do bitów bezpiecznikowych CKSEL (jeśli zostanie wpisany jakikolwiek inny kod, timer/licznik 1 będzie pracował normalnie). Po wybraniu tryb kompatybilności z ATtiny15 udostępnia wstecznie kompatybilny preskaler oraz timer/licznik.  Co więcej system zegarowy ma te same częstotliwości zegarowe jak w ATtiny15.

Preskaler timera/licznika 1

Poniższy rysunek pokazuje preskaler kompatybilny z ATtiny15. Zawiera on dwa moduły preskalera: 10-bitowy preskaler dla zegara systemowego (CK) i 3-bitowy preskaler dla szybkiego zegara peryferyjnego (PCK). W trybie kompatybilności z ATtiny15 system taktowania timera/licznika 1 jest zawsze synchroniczny, ponieważ ten sam oscylator RC jest używany jako źródło zegara pętli fazowej PLL (generującej zegar wejściowy dla preskalera) i rdzenia AVR.

obrazek

Można dokonać wyboru tych samych ustawień zegara dla timera/licznika 1 jak w ATtiny15 z wyjściowego preskalera, ponieważ częstotliwość szybkiego zegara peryferyjnego wynosi 25,6 MHz, a preskaler jest podobny w trybie kompatybilności z ATtiny15. Ustawienia zegara są następujące: PCK, PCK/2, PCK/4, PCK/8, CK, CK/2, CK/4, CK/8, CK/16, CK/32, CK/64, CK/128, CK/256, CK/512, CK/1024 i stop.


Na początek:  podrozdziału   strony 

Licznik i moduły porównawcze

Rysunek poniżej pokazuje blok rejestrów synchronizacji timera/licznika 1 oraz opóźnienia synchronizacyjne pomiędzy rejestrami. Na rysunku nie pokazano wszystkich szczegółów bramkowania zegara. Wartości rejestrów timera/licznika 1 przechodzą przez wewnętrzne rejestry synchronizujące, co powoduje opóźnienie synchronizacji wejścia, zanim wpłynie ono na operację zliczania. Rejestry TCCR1, GTCCR, OCR1A i OCR1C mogą być odczytane tuż po zapisie. Odczytywane z powrotem wartości są opóźniane dla rejestru timera licznika 1 (TCNT1) i znaczników (OCF1A i TOV1), z powodu synchronizacji wejścia i wyjścia.

Timer/licznik 1 posiada wysoką rozdzielczość i dużą dokładność i można w nim zastosować również niższe częstotliwości z preskalera. Może również wspierać dokładny, 8-bitowy modulator szerokości impulsu o dużej szybkości pracy z użyciem częstotliwości do 25,6 MHz. W tym trybie timer/licznik 1 i rejestry output compare służą jako samodzielne generatory PWM. Wysokie częstotliwości preskalowania pozwalają wykorzystywać ten moduł w funkcjach niższych częstotliwości lub w funkcjach dokładnego odmierzania czasu w rzadko występujących działaniach.

Timer/licznik 1 i preskaler pozwalają mikroprocesorowi na pracę z dowolnym źródłem zegarowym, podczas gdy preskaler pracuje z szybkim zegarem PCK 25.6 MHz w trybie asynchronicznym. Poniższy rysunek pokazuje schemat blokowy timera/licznika 1.

W rejestrze znaczników przerwań timera/licznika 1, TIFR, znajdują się dwa znaczniki stanu (przepełnia i zgodności porównania). Sygnały sterujące znajdują się w rejestrach sterujących timera/licznika 1, TCCR1 i GTCCR. Ustawienia włączania/wyłączania przerwań znajdują się w rejestrze masek przerwań timera/licznika, TIMSK.

Timer/licznik 1 zawiera dwa rejestry Output Compare, OCR1A i OCR1C, jako źródła danych do porównywania z zawartością timera/licznika 1. W trybie normalnym funkcje Output Compare działają tylko z rejestrem OCR1A, który określa działanie na końcówce OC1A (PB1) i może generować przerwanie Timer1 OC1A w trybie normalnym i w trybie PWM. Rejestr OCR1C przechowuje wartość maksymalną dla timera/licznika 1, tj wartość, która powoduje wyzerowanie licznika przy zgodności porównania. W trybie normalnym przerwanie przy przepełnieniu (TOV1) jest generowane, gdy timer/licznik 1 zmienia wartość z 0xFF na 0x00, natomiast w trybie PWM przerwanie od przepełnienia jest generowane gdy timer/licznik 1 zlicza albo z 0xFF na 0x00 lub z OCR1C na 0x00. W trybie PWM OCR1A dostarcza danych do porównywania z wartością timera/licznika. Przy zgodności porównania generowane jest wyjście PWM (OC1A). W trybie PWM timer/licznik zlicza do wartości określonej w rejestrze Output Compare OCR1C, po czym rozpoczyna zliczanie od nowa z 0x00. Ta cecha pozwala na ograniczenie "pełnej" wartości do wartości określonej, niższej od 0xFF. Wraz z wieloma opcjami preskalera otrzymujemy możliwość wyboru elastycznej częstotliwości PWM. Poniższa tabela wymienia ustawienia zegara i wartości OCR1C do otrzymania częstotliwości PWM od 20 kHz do 250 kHz w krokach co 10 kHz i od 250 kHz do 500 kHz w krokach co 50 kHz. Wyższe częstotliwości PWM otrzymuje się kosztem rozdzielczości

Wybór preskalowania zegara timera/licznika 1 w trybie asynchronicznym

Częstotliwość PWM Wybór zegara CS1[3:0] OCR1C Rozdzielczość
20 kHz PCK/16 0101 199 7.6
30 kHz PCK/16 0101 132 7.1
40 kHz PCK/8 0100 199 7.6
50 kHz PCK/8 0100 159 7.3
60 kHz PCK/8 0100 132 7.1
70 kHz PCK/4 0011 228 7.8
80 kHz PCK/4 0011 199 7.6
90 kHz PCK/4 0011 177 7.5
100 kHz PCK/4 0011 159 7.3
110 kHz PCK/4 0011 144 7.2
120 kHz PCK/4 0011 132 7.1
130 kHz PCK/2 0010 245 7.9
140 kHz PCK/2 0010 228 7.8
150 kHz PCK/2 0010 212 7.7
160 kHz PCK/2 0010 199 7.6
170 kHz PCK/2 0010 187 7.6
180 kHz PCK/2 0010 177 7.5
190 kHz PCK/2 0010 167 7.4
200 kHz PCK/2 0010 159 7.3
250 kHz PCK 0001 255 8.0
300 kHz PCK 0001 212 7.7
350 kHz PCK 0001 182 7.5
400 kHz PCK 0001 159 7.3
450 kHz PCK 0001 141 7.1
500 kHz PCK 0001 127 7.0

Na początek:  podrozdziału   strony 

Timer/licznik 1 w trybie PWM

Gdy zostanie wybrany tryb PWM, to timer/licznik 1 i rejestr A Output Compare - OCR1A tworzą 8-bitowy, swobodnie pracujący bez zakłóceń generator PWM z wyjściami na końcówce PB1(OC1A).

Gdy wartość licznika zgodzi się z zawartością rejestru OCR1A, wyjście OC1A jest ustawiane lub zerowane zgodnie z bitami COM1A1/COM1A0 lub COM1B1/COM1B0 w rejestrze A sterującym timerem licznikiem 1 - TCCR1, co pokazuje poniższa tabelka.

Timer/licznik 1 pracuje jako licznik liczący w górę od 0x00 do wartości określonej w rejestrze Output Compare OCR1C, po czym rozpoczyna zliczanie ponownie od 0x00 w górę. Zgodność porównania z rejestrem OC1C ustawi znacznik przerwania przy przepełnieniu (TOV1) po opóźnieniu wnoszonym przez synchronizację po zdarzeniu porównania.

Wybór trybu porównania w trybie PWM

COM1x1 COM1x0 Wpływ na końcówkę output compare
0 0 OC1A nie podłączone.
0 1 OC1A nie podłączone.
1 0 OC1A zerowane przy zgodności porównania. Ustawiane, gdy TCNT1 = 0x00.
1 1 OC1A ustawiane przy zgodności porównania. Zerowane, gdy TCNT1 = 0x00.

Zauważ, iż w trybie PWM zapis do rejestru Output Compre OCR1A powoduje umieszczenie wartości danych najpierw w rejestrze tymczasowym. Następnie wartość ta jest zatrzaskiwana w OCR1A, gdy timer/licznik osiągnie wartość OCR1C. Zapobiega to wystąpieniu impulsów PWM o złej długości (zakłócenia) w przypadku niezsynchronizowania rejestru OCR1A. Przykład pokazuje poniższy rysunek.

W czasie pomiędzy zapisem a operacją zatrzaskiwania, odczyt z rejestru OCR1A zwróci zawartość rejestru tymczasowego. Oznacza to, iż z rejestru OCR1A odczytywana jest zawsze ostatnio wpisana wartość. Gdy OCR1A zawieraj 0x00 lub wartość maksymalną, określaną przez rejestr OCR1C register, wyjście PB1(OC1A) jest utrzymywane w stanie wysokim lub niskim zgodnie z ustawieniami bitów COM1A1/COM1A0, co pokazuje poniższa tabelka.

Stan wyjść PWM, gdy rejestr OCR1A = 0x00 lub OCR1C

COM1x1 COM1x0 OCR1A Wyjście OC1A
0 1 0x00 L
0 1 OCR1C H
1 0 0x00 L
1 0 OCR1C H
1 1 0x00 H
1 1 OCR1C L

W trybie PWM znacznik przepełnienia timera (ang. Timer Overflow Flag, TOV1) jest ustawiany, gdy TCNT1 zliczy do wartości OCR1C i zostanie zresetowany na 0x00. Przerwanie 1 od przepełnienia timera (ang. Timer Overflow Interrupt1) jest wykonywane, gdy zostaje ustawiony bit TOV1 przy globalnym włączeniu przerwań (bit I w rejestrze stanu SREG)  i uaktywnieniu przerwania od przepełnienia timera. Stosuje się to również do znaczników i przerwań Output Compare.

Częstotliwość PWM będzie równa częstotliwości zegara timera 1 podzielonej przez (wartość OCR1C + 1). Zobacz na poniższy wzór:

Wypełnienie przebiegu PWM można wyliczyć z poniższego równania:

... gdzie TPCK jest okresem szybkiego zegara peryferyjnego (1/25,6 MHz  = 39,1 ns).

Rozdzielczość pokazuje ile bitów jest potrzebnych do wyrażenia wartości w rejestrze OCR1C i można ją obliczyć z poniższego wzoru:

Wybór preskalowania zegara timera/licznika 1 w trybie asynchronicznym

Częstotliwość PWM Wybór zegara CS1[3:0] OCR1C Rozdzielczość
20 kHz PCK/16 0101 199 7.6
30 kHz PCK/16 0101 132 7.1
40 kHz PCK/8 0100 199 7.6
50 kHz PCK/8 0100 159 7.3
60 kHz PCK/8 0100 132 7.1
70 kHz PCK/4 0011 228 7.8
80 kHz PCK/4 0011 199 7.6
90 kHz PCK/4 0011 177 7.5
100 kHz PCK/4 0011 159 7.3
110 kHz PCK/4 0011 144 7.2
120 kHz PCK/4 0011 132 7.1
130 kHz PCK/2 0010 245 7.9
140 kHz PCK/2 0010 228 7.8
150 kHz PCK/2 0010 212 7.7
160 kHz PCK/2 0010 199 7.6
170 kHz PCK/2 0010 187 7.6
180 kHz PCK/2 0010 177 7.5
190 kHz PCK/2 0010 167 7.4
200 kHz PCK/2 0010 159 7.3
250 kHz PCK 0001 255 8.0
300 kHz PCK 0001 212 7.7
350 kHz PCK 0001 182 7.5
400 kHz PCK 0001 159 7.3
450 kHz PCK 0001 141 7.1
500 kHz PCK 0001 127 7.0

Na początek:  podrozdziału   strony 

Opis rejestrów

TCCR1 – Timer/Counter1 Control Register – Rejestr sterujący timera/licznika 1

Bit 7 6 5 4 3 2 1 0  
0x30 CTC1 PWM1A COM1A1 COM1A0 CS13 CS12 CS11 CS10 TCCR1
Zapis/Odczyt Z/O Z/O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Bit 7 – CTC1 : Clear Timer/Counter on Compare Match – Zerowanie timera/licznika przy zgodności porównania

Gdy bit sterujący CTC1 jest ustawiony, timer/licznik 1 zostaje zresetowany na 0x00 w cyklu mikroprocesora następującym po zgodności porównania z wartością rejestru OCR1C. Jeśli ten bit sterujący jest wyzerowany, to timer/licznik 1 kontynuuje zliczanie i nie wpływa na niego zgodność porównania.

Bit 6 – PWM1A: Pulse Width Modulator A Enable – Włączenie modulatora A PWM

Gdy bit ten zostanie ustawiony, włącza tryb PWM oparty o komparator OCR1A w timerze/liczniku 1 i wartość licznika jest resetowana na 0x00 w takcie mikroprocesora występującym po zgodności porównania z wartością rejestru OCR1C.

Bity 5:4 – COM1A[1:0]: Comparator A Output Mode, Bits 1 and 0  – Tryb wyjścia komparatora A, nity 1 i 0

Bity sterujące COM1A1 i COM1A0 określają zachowanie się końcówki wyjściowej po wystąpieniu zgodności porównania z rejestrem A w timerze/liczniku 1. Ponieważ działanie na końcówce wyjściowej jest alternatywną funkcją portu we/wy, to odpowiedni bit kierunku musi zostać ustawiony na 1, aby kontrolować końcówkę wyjścia.

W trybie normalnym bity sterujące COM1A1 i COM1A0 określają działania wpływające na końcówkę PB1 (OC1A), co pokazuje poniższa tabelka. Zauważ, iż OC1A nie jest podłączone w trybie normalnym.

COM1A1 COM1A0 Opis
0 0 Komparator A timera/licznika odłączony od końcówki wyjściowej OC1A.
0 1 Zmiana stanu linii OC1A na przeciwny.
1 0 Zerowanie linii OC1A.
1 1 Ustawienie w stan 1 linii OC1A.

W trybie PWM bity te mają inne znaczenia. Zobacz tutaj.

Bity 3:0 – CS1[3:0]: Clock Select Bits 3, 2, 1, and 0 – Bity wyboru zegara

Bity wyboru zegara 3, 2, 1 i 0 definiują preskalujace źródło dla timera/licznika 1.

CS13 CS12 CS11 CS10 Tryb asynchroniczny Tryb synchroniczny
0 0 0 0 Timer/licznik 1 zatrzymany Timer/licznik 1 zatrzymany
0 0 0 1 PCK CK
0 0 1 0 PCK/2 CK/2
0 0 1 1 PCK/4 CK/4
0 1 0 0 PCK/8 CK/8
0 1 0 1 PCK/16 CK/16
0 1 1 0 PCK/32 CK/32
0 1 1 1 PCK/64 CK/64
1 0 0 0 PCK/128 CK/128
1 0 0 1 PCK/256 CK/256
1 0 1 0 PCK/512 CK/512
1 0 1 1 PCK/1024 CK/1024
1 1 0 0 PCK/2048 CK/2048
1 1 0 1 PCK/4096 CK/4096
1 1 1 0 PCK/8192 CK/8192
1 1 1 1 PCK/16384 CK/16384

Opcja stopu udostępnia funkcję zatrzymania timera/licznika 1.


GTCCR – General Timer/Counter1 Control Register – Ogólny rejestr sterujący timera/licznika 1

Bit 7 6 5 4 3 2 1 0  
0x2C TSM PWM1B COM1B1 COM1B0 FOC1B FOC1A PSR1 PSR0 GTCCR
Zapis/Odczyt Z/O Z/O Z/O Z/O Z Z Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Bit 2 – FOC1A: Force Output Compare Match 1A – Wymuszona zgodność porównania 1A

Zapis logicznej jedynki do tego bitu wymusza zmianę zgodności porównania na końcówce wyjścia PB1 (OC1A) zgodnie z wartościami wcześniej ustawionymi w bitach COM1A1 i COM1A0. Jeśli bity COM1A1 i COM1A0 są zapisywane w tym samym cyklu co bit FOC1A, to zostanie użyte nowe ustawienie. Bit wymuszonej zgodności porównania można wykorzystać do zmiany wartości końcówki wyjścia bez względu na wartość licznika. Automatyczne działanie zaprogramowane w bitach COM1A1 i COM1A0 zostanie wykonane tak, jakby wystąpiła zgodność porównania, lecz nie będzie generowane przerwanie. Bit FOC1A zawsze daje przy odczycie zero. Bit FOC1A nie jest używany, gdy został ustawiony bit PWM1A.

Bit 1 – PSR1 : Prescaler Reset Timer/Counter1 – Reset preskalera timera/licznika 1

Gdy bit ten zostanie ustawiony, resetowany jest preskaler timera/licznika (TCNT1 nie jest zmieniane). Po wykonaniu tej operacji bit PSR1 jest zerowany sprzętowo. Zapis zera do tego bitu nie odnosi żadnego skutku. Bit przy odczycie zawsze daje wartość zero.


TCNT1 – Timer/Counter1 – Timer/licznik 1

Bit 7 6 5 4 3 2 1 0  
0x2F MSB             LSB TCNT1
Zapis/Odczyt Z/O Z/O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Ten 8-bitowy rejestr zawiera wartość timera/licznika 1.

Timer/licznik 1 został zrealizowany jako licznik zliczający w górę z dostępem odczytu i zapisu.  Z powodu synchronizacji z mikroprocesorem dane zapisywane do timera/licznika 1 są opóźnione o półtora cyklu zegara mikroprocesora w trybie synchronicznym i o co najwyżej jeden cykl zegara mikroprocesora w trybie asynchronicznym.


OCR1A – Timer/Counter1 Output Compare Register A – Rejestr A Output Compare timera/licznika 1

Bit 7 6 5 4 3 2 1 0  
0x2E MSB             LSB OCR1A
Zapis/Odczyt Z/O Z/O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Rejestr A Output Compare jest 8-bitowwym rejestrem do zapisu/odczytu.

Rejestr A Output Compare timera/licznika 1 zawiera dane ciągle porównywane z wartością timera/licznika 1. Działania wykonywane przy wystąpieniu zgodności porównania są określone w rejestrze TCCR1. Zgodność porównania wystąpi tylko wtedy, jeśli timer/licznik 1 zliczy do wartości OCR1A. Programowy wpis, który ustawia TCNT1 i OCR1A na tę samą wartość nie generuje zgodności porównania.

Zgodność porównania ustawi znacznik porównania OCF1A po opóźnieniu synchronizującym występującym po zdarzeniu porównania.


OCR1C – Timer/Counter1 Output Compare Register C – Rejestr B Output Compare timera/licznika 1

Bit 7 6 5 4 3 2 1 0  
0x2D MSB             LSB OCR1C
Zapis/Odczyt Z/O Z/O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Rejestr C Output Compare jest 8-bitowwym rejestrem do zapisu/odczytu.

Rejestr C Output Compare timera/licznika 1 zawiera dane ciągle porównywane z wartością timera/licznika 1. Działania wykonywane przy wystąpieniu zgodności porównania są określone w rejestrze TCCR1. Zgodność porównania wystąpi tylko wtedy, jeśli timer/licznik 1 zliczy do wartości OCR1C. Programowy wpis, który ustawia TCNT1 i OCR1C na tę samą wartość nie generuje zgodności porównania.

Jeśli bit CTC1 w rejestrze TCCR1 jest ustawiony, to zgodność porównania wyzeruje rejestr TCNT1.

Rejestr ten posiada tę samą funkcję w trybie normalnym i w trybie PWM.


TIMSK – Timer/Counter Interrupt Mask Register – Rejestr masek przerwań timera/licznika

Bit 7 6 5 4 3 2 1 0  
0x39 OCIE1A OCIE1B OCIE0A OCIE0B TOIE1 TOIE0 TIMSK
Zapis/Odczyt O Z/O Z/O Z/O Z/O Z/O Z/O O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Bit 7 – Zarezerwowany bit

Ten bit jest zarezerwowany w ATtiny25/45/85 i zawsze daje przy odczycie zero.

Bit 6 – OCIE1A: Timer/Counter1 Output Compare Interrupt Enable – Włączenie przerwań dla Output Compare A w timerze/liczniku 1

Gdy bit OCIE1A zostanie ustawiony na 1 i ustawiony jest bit I w rejestrze stanu SREG, to uaktywnione zostają przerwania przy zgodności porównania A w timerze liczniku 1. Odpowiadający mu wektor przerwania 0x003 zostanie wykonany, jeśli wystąpi zgodność porównania A. W takim przypadku ustawiony zostaje znacznik porównania dla timera/licznika 1 w rejestrze znaczników przerwań timera/licznika (ang. Timer/Counter Interrupt Flag Register).

Bit 2 – TOIE1: Timer/Counter1 Overflow Interrupt Enable – Włączenie przerwań przy przepełnieniu timera/licznika 1

Gdy bit TOIE1 jest ustawiony i ustawiony jest bit I w rejestrze stanu SREG, uaktywnione zostaje przerwania przy przepełnieniu timera/licznika 1.

Odpowiednie przerwanie (pod wektorem 0x004) jest wykonywane, jeśli wystąpi przepełnienie w timerze/liczniku 1. Znacznik przepełnienia (Timer1) jest ustawiany w rejestrze znaczników przerwań timera/licznika (ang. Timer/Counter Interrupt Flag Register - TIFR).

Bit 0 – Zarezerwowany bit

Ten bit jest zarezerwowany w ATtiny25/45/85 i zawsze daje przy odczycie zero.


TIFR – Timer/Counter Interrupt Flag Register – Rejestr znaczników przerwań timera/licznika

Bit 7 6 5 4 3 2 1 0  
0x38 OCF1A OCF1B OCF0A OCF0B TOV1 TOV0 TIFR
Zapis/Odczyt O Z/O Z/O Z/O Z/O Z/O Z/O O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Bit 7 – Zarezerwowany bit

Ten bit jest zarezerwowany w ATtiny25/45/85 i zawsze daje przy odczycie zero.

Bit 6 – OCF1A: Output Compare Flag 1A – Znacznik 1A Output Compare

Bit OCF1A jest ustawiany, gdy wystąpi zgodność porównania pomiędzy timerem/licznikiem 1 a wartością danych w rejestrze OCR1A (ang. Output Compare Register 1A). Znacznik OCF1A jest zerowany sprzętowo przy wykonaniu odpowiedniego wektora obsługi przerwania. Alternatywnie znacznik OCF1A jest zerowany po cyklu synchronizacji zegara przez wpisanie logicznej jedynki do bitu znacznika. Gdy są ustawione na 1 bity I w rejestrze SREG, OCIE1A i OCF1A, zostaje wykonane przerwanie przy zgodności porównania A w timerze/liczniku 1.

Bit 2 – TOV1: Timer/Counter1 Overflow Flag – Znacznik przepełnienia timera/licznika 1

W trybie normalnym (PWM1A=0 i PWM1B=0) bit TOV1 jest ustawiany na 1, gdy wystąpi przepełnienie w timerze/liczniku 1.

Bit TOV1 jest zerowany sprzętowo przy wykonaniu odpowiedniego wektora obsługi przerwania.  Alternatywnie znacznik TOV1 jest zerowany po cyklu synchronizacji zegara przez wpisanie logicznej jedynki do bitu znacznika.

W trybie PWM (albo PWM1A=1, albo PWM1B=1) bit TOV1 zostanie ustawiony przy wystąpieniu zgodności porównania pomiędzy timerem/licznikiem 1 a wartością danych w rejestrze OCR1C (ang. Output Compare Register 1C).

Gdy są ustawione na 1 bity I w rejestrze SREG, TOIE1 (ang. Timer/Counter1 Overflow Interrupt Enable – włączenie przerwań przy przepełnieniu w timerze/liczniku 1) i TOV1B, zostaje wykonane przerwanie przy przepełnieniu w timerze/liczniku 1

Bit 0 – Zarezerwowany bit

Ten bit jest zarezerwowany w ATtiny25/45/85 i zawsze daje przy odczycie zero.


PLLCSR – PLL Control and Status Register – Rejestr stanu i sterowania pętlą fazową PLL

Bit 7 6 5 4 3 2 1 0  
0x27 LSM PCKE PLLE PLOCK PLLCSR
Zapis/Odczyt O O O O O Z/O Z/O O  
Wartość początkowa 0 0 0 0 0 0 0/1 0  

Bity 6:3 – Res : Zarezerwowane

Te bity są zarezerwowane w ATtiny25/45/85 i zawsze dają przy odczycie zero.

Bit 2 – PCKE: PCK Enable – Włączenie zegara PCK

Bit PCKE jest zawsze ustawiony w trybie kompatybilności z ATtiny15.

Bit 1 – PLLE: PLL Enable – Włączenie pętli fazowej PLL

Pętla fazowa PLL jest zawsze włączona w trybie kompatybilności z ATtiny15.

Bit 0 – PLOCK: PLL Lock Detector – Wykrywanie sprzężenia pętli PLL

Gdy bit PLOCK jest ustawiony, pętla PLL jest sprzężona z zegarem referencyjnym. Bit PLOCK powinien być ignorowany podczas wstępnej sekwencji synchronizowania PLL, gdy częstotliwość PLL jest ponad lub poniżej wartości sprzężonej, przed osiągnięciem stanu ustalonego. Stan ustalony pojawia się w ciągu 100 μs. Po zsynchronizowaniu PLL zaleca się sprawdzenie bitu PLOCK przed włączeniem zegara PCK dla timera/licznika 1.


Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.