M irric. r 61
w których jest wymagany precyzyjny pomiar długich czasów, niezbędne staje się wprowadzenie dodatkowych mechanizmów programowych. Najczęściej będzie to dodatkowa zmienna programu zliczająca przerwania od timera/licz-nika. Zliczanie kończy się dopiero po osiągnięciu wymaganej liczby wejść do procedury obsługującej przerwanie.
Timer/LicznikO jest konfigurowany poprzez rejestr sterujący TCCRO. Flaga przepełnienia dla tego układu (TOVO) znajduje się w rejestrze TEFR (Timer/ Counter Interrupt Flag Register).
Bit |
7 |
6 |
5 |
4 |
3 |
2 |
1 i |
0 | |
$33 ($53) |
-V*' I |
— |
I - i |
l - |
I - |
1 CS02 | |
CS01 | |
CSOO |
| TCCRO |
Odczyt/Zapis |
R |
R |
R |
R |
R |
R/W |
R/W |
R/W | |
Wartość początkowa |
’o |
0 |
0 |
0 |
0 |
0 |
0 |
Ó |
R - oznacza odczyt, R/W - oznacza odczyt/zapis
B7...3 - zarezerwowane.
Te bity są zarezerwowane w układzie AT90S2313 i zawsze odczytywane jako zero.
B2...B0 - CS02, CS01, CSOO (Clock SelectO, bity: 2, 1, 0): bity wyboru stopnia podziału preskalera oraz źródła sygnału taktującego i jego zbocza aktywnego dla licznika TCO.
Wszystkie kombinacje bitów wyboru dla Timera/LicznikaO przedstawiono w tablicy 5.1.
Występujący w tablicy 5.1 sygnał CK pochodzi z wewnętrznego generatora i jest to ten sam sygnał, który taktuje CPU. Skonfigurowanie układu TCO jako licznik powoduje — jak już wiadomo — zliczanie impulsów z wejścia TO. Dzieje się tak nawet wtedy, gdy wyprowadzenie mikrokontrolera PD4/T0 jest ustawione jako wyjście. Rozwiązanie takie umożliwia programową kontrolę
Tab. 5.1. Konfiguracja układu Timera/LicznikaO
CS02 |
CS01 |
| CSOO |
Opis |
0 |
0 |
0 |
Stop - układ TCO jest zatrzymany |
0 |
0 |
1 |
Sygnat taktujący CK |
0 |
1 |
0 |
Sygnał taktujący CK/8 |
0 |
1 |
1 |
Sygnał taktujący CK/64 |
1 |
0 |
0 |
Sygnat taktujący CK/256 |
1 |
0 |
1 |
Sygnał taktujący CK/1024 |
1 |
1 |
0 |
Sygnat taktujący: zewnętrzny sygnał TO, zbocze opadające |
1 |
1 |
1 |
Sygnat taktujący: zewnętrzny sygnał TO, zbocze narastające |