Mikrokontroler ADuC831 posiada trzy 16-bitowe zegary/liczniki : Timer 0, Timer 1 oraz Timer 2. Realizacja jest sprzętowa aby odciążyć rdzeń procesora (…). Każdy timer/licznik składa się z dwóch 8-bitowych rejestrów THx i TLx (x= 0, 1 i 2). Wszystkie trzy mogą być skonfigurowane jako zegary lub liczniki zdarzeń.
Przy konfiguracji jako zegar zawartość rejestr TLx podlega inkrementacji za każdym cyklem maszynowym. Cykl maszynowy składa się z 12 cykli zegara. Maksymalną częstotliwością zliczania jest 1/12 częstotliwości taktowania rdzenia procesora.
W trybie „Licznik” rejestr TLx jest zwiększany (gdy zachodzi zmiana 1-na-0) na jego odpowiednim, zewnętrznym wejściowym pinie, T0, T1 albo T2. W tej funkcji zewnętrzne wejście jest próbkowane podczas S5P2 każdego cyklu maszynowego. Kiedy próbki pokazują stan wysoki w jednym cyklu a niski w kolejnym licznik jest zwiększany. Nowa wartość licznika pojawia się w rejestrze podczas S3P1 cyklu następującego po tym w którym zmiana była wykryta. Ponieważ potrzeba dwóch cykli maszynowych (24 taktów zegara), żeby wykryć zmianę 1-na-0, maksymalny wskaźnik licznika wynosi 1/24 częstotliwości zegara. Nie ma żadnych restrykcji związanych z cyklem zadaniowym zewnętrznego sygnału wejściowego, ale żeby upewnić się, że zadany poziom jest spróbkowany przynajmniej raz zanim się zmieni, musi być utrzymany przynajmniej przez jeden pełen cykl maszynowy.
User configuration and control of all Timer operating modes is achieved via three SFRs:
TMOD, TCON Control and configuration for Timers 0 and 1.
T2CON Control and configuration for Timer 2.
Źródło: dokumentacja ADuC831
« poprzednia | następna » |
---|